JDBC初学(一):连接和操作

JDBC(Java DataBase Connectivity) Java数据库连接 
其实就是利用Java语言/程序连接并访问数据库的一门技术
之前我们可以通过cmd或者SQLyog等工具连接操作数据库
但在企业开发中,更多的是通过程序(Java程序)连接并访问数据库,通过Java程序访问数据库,就需要用到JDBC这门技术。

第一步: 首先我们在mysql数据库中准备一下我们需要操作的数据:
create database jt_db charset utf8;
use jt_db;
create table account(
id int primary key auto_increment,
name varchar(50),
money double
);
insert into account values(null, ‘tom’, 1000);
insert into account values(null, ‘andy’, 1000);
insert into account values(null, ‘tony’, 1000);
我们在数据库中创建jt_db数据库并创建account表并插入数据。

2.第二步:导入mysql驱动包
在
如上图,在java工程中创建一个Folder,命名为lib,在网上找到mysql-connector-java-5.1.32.jar压缩包后,将其粘贴到 lib 中。
在这里插入图片描述
之后,我们右击mysql-connector-java-5.1.32.jar压缩包,选中buildpath->add to build path
如上图,我们就会发现我们的Referenced Libraries 中有一个奶瓶状标识的jar包了。

第3步:创建类并实现jdbc程序(六个步骤):
1.注册数据库驱动
*2.获取数据库连接
*3.获取传输器
*4.通过传输器发送SQL到服务器,并返回执行结果
*5.输出结果(将每一行记录输出到控制台上)
*6.稀释资源
*
注意:我的mysql数据库账号和密码都是root,端口也是3306
代码如下:


	public static void main(String[] args) throws Exception {
    
    
		/**
		 * *1.注册数据库驱动(参数是Driver类的权限定类名)
		 */
		try {
    
    
			Class.forName("com.mysql.jdbc.Driver");//反射Driver类,使其运行,其中的静态代码块注册
		} catch (ClassNotFoundException e) {
    
    
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		/**
		 * 	*2.获取数据连接:(三个参数,连接数据库的url,数据库的用户名,密码)
		 */
		Connection conn=DriverManager.getConnection(
				"jdbc:mysql://localhost:3306/jt_db?characterEncoding=utf-8","root","root");
		/**
		 *  *3.获取传输
		 */
		Statement stat=conn.createStatement();//Statement传输器
		/**
		 * *4.通过传输器发送SQL到服务器,并返回执行结果
		 */
		String sql="select * from account                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             ";
		//将 sql语句传到数据库
		ResultSet rs=stat.executeQuery(sql);//executeQuery用于执行查询类型的SQL语句
		/**
		 * *5.输出结果(将每一行记录输出到控制台上)
		 */
//		rs.next();//让箭头向下挪动一行,返回布尔值
//		rs.getInt("id");
//		rs.getString("name");
//		rs.getDouble("money");
		System.out.println("id\t"+"name\t"+"money\t");
		while(rs.next()) {
    
    
			int id=rs.getInt("id");
			String name=rs.getString("name");
			double money=rs.getDouble("money"); 
			
			System.out.println(id+"\t"+name+"\t"+money+"\t");
		}
		/**
		 * *6.稀释资源
		 */
		rs.close();
		stat.close();
		conn.close();

		//syst  alt+/
		System.out.println("TertJDBC01.main()");
		
		
	
	}

执行结果如下:
在这里插入图片描述

我们不难发现,JDBC连接步骤中的第一步注册驱动和第二步获取数据库连接他们的格式都是恒定的(除了URL,数据库账号和密码这些参数外)
所以,为了以后的使用方便,我们可以将第一步和第二步封装到一个类方法中去,到以后使用是,我们只需调用这个类的方法就可以直接获取到连接了。
方法如下:
如图,我们在当前工程下新建个包,在包中新建一个生成连接的类
在这里插入图片描述
这之后,我们在类中可写两个方法:
一个无参的getConn()方法和一个有参的getConn()方法
无参的方法中我们默认url,账号和密码已经确定,这是为了调用方法方便,在有参的方法中我们主要是为了当我们的url,账号或密码有所变动时,便于修改。(只要改变参数即可)

public class jdbcUtil {
    
    
	//获取连接的方法
	public static Connection getConn(){
    
    
		try {
    
    
			Class.forName("com.mysql.jdbc.Driver");
			//获取连接:
			String url="jdbc:mysql://localhost:3306/jt_db?characterEncoding=utf-8";
			String user="root";
			String pwd="root";
			Connection conn=DriverManager.getConnection(url,user,pwd);
			return conn;
		} catch (Exception e) {
    
    
			e.printStackTrace();
		}
		return null;
	}

	/**
	 * 获取数据库连接对象
	 * @param dbName 连接数据库的名字
	 * @param user  连接数据可的用户名
	 * @param pwd 连接的数据库的密码
	 * @return Connection连接对象
	 */
	public static Connection getConn(String dbName,String user,String pwd){
    
    
		try {
    
    
			Class.forName("com.mysql.jdbc.Driver");
			//获取连接:
			String url="jdbc:mysql://localhost:3306/"+dbName+"?characterEncoding=utf-8";
			Connection conn=DriverManager.getConnection(url,user,pwd);
			return conn;
		} catch (Exception e) {
    
    
			e.printStackTrace();
		}
		return null;
	}
}

在我们将连接方法封装后,调用它就方便啦。
我们在第四步开头,我们用java连接数据库后只对其进行了查询操作,(executeQuery()函数,返回值是数据库中的数据集合),然而,我们对数据库的增,删,改操作却需要用另一个函数(executeUpdate()函数,返回值是操作影响的数据行数)。

@Test
	public void testInsert() throws Exception {
		//新增:
		Class.forName("com.mysql.jdbc.Driver");
		//获取连接:
		String url="jdbc:mysql://localhost:3306/jt_db?characterEncoding=utf-8";
		String user="root";
		String pwd="root";
		Connection conn=DriverManager.getConnection(url,user,pwd);
		//获取传输器:
		Statement stat=conn.createStatement();
		//执行sql,返回结果
		String sql = "insert into account value(null,'john',3500)";
		int rows=stat.executeUpdate(sql);//返回行数
		//输出结果
		System.out.println("影响行数:"+rows);
		//释放资源
		stat.close();
		conn.close();
		
	}
删除操作:
@Test
	public void testDelete() throws Exception {
    
    
		//删除:
		Connection conn=jdbcUtil.getConn();
		Statement stat=conn.createStatement();
		String sql ="delete from account where id=4";
		int rows=stat.executeUpdate(sql);
		System.out.println("影响行数:"+rows);
		//释放资源
		stat.close();
		conn.close();
	}
更改操作:
@Test
	public void testUpdate() throws Exception {
    
    
		//修改:
		Connection conn=jdbcUtil.getConn();
		Statement stat=conn.createStatement();
		String sql ="update account set money=1500 where name='john'";
		int rows=stat.executeUpdate(sql);
		System.out.println("影响行数:"+rows);
		//释放资源
		stat.close();
		conn.close();
	}
	
查询操作:
@Test
	public void testSelect() throws Exception{
    
    
		Connection conn=jdbcUtil.getConn("jt_db","root", "root");
		Statement stat=conn.createStatement();
		String sql="select * from account";
		ResultSet rs=stat.executeQuery(sql);
		
		System.out.println("id\t"+"name\t"+"money\t");
		while(rs.next()) {
    
    
			int id=rs.getInt("id");
			String name=rs.getString("name");
			double money=rs.getDouble("money"); 
			
			System.out.println(id+"\t"+name+"\t"+money+"\t");
		}
		
		rs.close();
		stat.close();
		conn.close();
	}

猜你喜欢

转载自blog.csdn.net/qq_45273552/article/details/107069779