JDBC即java数据库互连,是java语言和数据库之间独立于数据库的连接标准API,JDBC从根本上来说是一种规范,具体的实现需要依赖于具体数据库生产商提供jar包【驱动】,提供了统一的接口用于访问不同的底层数据库,允许使用java语言编写不同的应用程序以访问数据库。
1.添加驱动
每个JDBC应用程序至少需要有一个JDBC驱动程序,JDBC驱动是Driver接口的实现类
Eclipse添加驱动程序
在项目下建立一个lib文件夹,将驱动程序拷贝到文件夹中,然后右键点击jar包,选择Build Path,
选择第一个Add the BuildPath;
2.获取连接
通过驱动管理器DriverManager类获取和数据库系统的连接
Connection conn=DriverManager.getConnection("连接串","连接数据库的用户名称","对应的
口令")
连接串用于代表需要连接的数据库,连接串的标准jdbc主协议:子协议:其它部分,但是不同的数据
库系统其对应的连接串不同。例如连接oracle则驱动串为oracle.jdbc.OracleDriver ,连接串
为jdbc:oracle:thin:@localhost:1521:test
Class.forName("com.mysql.cj.jdbc.Driver");
Connection conn =
DriverManager.getConnection("jdbc:mysql://localhost:3306/test?
serverTimezone=UTC", "root", "123456");
System.out.println(conn); //com.mysql.cj.jdbc.ConnectionImpl@365185bd
3、构建语句对象
在与特定数据库建立连接后,就可以发送SQL语句,在发送SQL语句之前需要创建一个语句对象
Statement:用于提交静态sql语句。有sql注入漏洞
PreparedStatement:Statement的子接口
Statement对象中提供了executeQuery方法来执行查询操作,这个方法会返回查询结果集
ResultSet类对象,其中包含SQL语句的查询结果
Statement对象中提供了executeUpdate方法来执行修改操作,这个方法会返回一个int值,表示
sql的增删改操作所影响的数据行数。
4、接收查询结果集
JDBC中使用ResultSet对象来表示查询结果集,可以理解为一个指向满足查询结果的行指针,其中并不存放实际数据,所以在使用结果集之前不能关闭连接
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("select * from tb_student");
5、遍历处理结果集
ResultSet对象包含了执行查询后满足条件的所有行,提供了对应的访问方法,有一组对应的getXxx方法获取指定列的值(注意:连接不能关闭);
while(rs.next()){ //用于移动行指针,同时判断是否有数据,如果有数据则返回为true
//由于历史原因,列序号从1开始
long id=rs.getLong(1);//指定列时可以使用序号,也可以使用列名称,一般建议使用列名
称,因为数据表的结构会有变动
String name=rs.getString("name");
int age=rs.getInt("age");
boolean sex=rs.getBoolean("sex");
System.out.println(id+":"+name+":"+age+":"+sex);
}
6、关闭对象
手动关闭ResultSet、Statement和Connection,注意这里必须保证Connection对象关闭
建议使用try/finally结构