第九章 JDBC

JDBC
一、什么是JDBC
JDBC的全称是Java数据库连接,它是一套用于执行SQL语句的Java API
不同种类的数据库在其内部处理数据的方式是不同的。
二、JDBC常用发的API
1、Driver接口
Driver接口是所有JDBC驱动程序必须实现的接口,该接口专门提供给数据库厂商使用。在编写JDBC时,必须要把所有使用的数据库驱动程序或类库加载到项目的中
2、DriverManager类
DriverManager类用于加载JDBC驱动并且创建与数据库的连接
3、Connection接口
Connection接口代表Java程序和数据库的连接,只获得该连接对象后才能访问数据库并操作数据库
4、Statement接口
Statement接口用于执行静态的SQL语句,并返回一个结果对象,该接口的对象通过Connection实例的createStatement()方法获得,利用该对象把静态的SQL语句发送到数据库编译执行,然后返回数据库的处理结果。
5、PreparedStatement接口
Statement接口封装了JDBC执行SQL语句的方法,可以完成Java程序执行SQL语句的操作。PreparedStatement是Statement的子接口,用于执行预编译的SQL语句。该接口扩展了带有参数SQL语句的执行操作,应用该接口中的SQL语句可以占位符“?”来代替其参数,然后通过set()方法为SQL语句的参数赋值。
6、ResultSet接口
ResultSet接口用于保持JDBC执行查询时返回的结果集,该结果集封装在一个逻辑表给中。在ResultSet接口内部有一个指向表格数据行的游标,ResultSet对象初始化时,游标在第一行之前,调用next()方法将游标移动到下一行。
三、实现第一个JDBC程序
(1)加载并注册数据库驱动
(2)通过DriverManager获取数据库连接
(3)通过Connection对象获取Statement对象
(4)使用Statement执行SQL语句
(5)操作ResultSet结果集
(6)关闭连接,释放资源
1) 搭建数据库环境
2)创建项目环境,导入数据库驱动
3)编写JDBC程序
首先注册MYSQL数据库驱动,通过DriverManager获取一个Connection对象,然后使用Connection对象创建一个Statement对象,Statement对象通过executeQuery()方法执行SQL语句,并返回结果集ResultSet,接下来,通过遍历ResultSet得到的最终结果的查询结果,最后关闭连接,回收数据库资源。
1、注册驱动
2、释放资源
四、PreparedStatement对象
SQL语句的执行通过Statement对象实现的。Statement对象每次执行SQL语句时,都会对其进行编译。当相同的SQL语句执行多重时,Statement对象就会使数据频繁编译相同的SQL语句,从而降低数据库的访问效率。
为了解决上述问题,Statement提供了一个子类 PreparedStatement。PreparedStatement对象可以对SQL语句进行预编译,预编译的信息会存储在PreparedStatement对象中。当相同的SQL语句再次执行时,程序会使用PreparedStatement对象中的数据,而不需要对SQL语句再次编译去查询数据库。
通过Connection对象的PreparedStatement()方法生成PreparedStatement对象,然后调用PreparedStatement对象的set()方法,给SQL语句中的参数赋值,最后通过调用executeUpdate()方法执行SQL语句。
五、ResultSet对象
ResultSet主要用于存储结果集,可以通过next()方法有向前后逐个获取结果的数据。
首先获取Connection对象连接数据库,然后通过Connection对象创建Statement对象并设置所需的两个常量,接下来执行SQL语句,将获取的数据信息存储放在ResultSet中,最后通过ResultSet对象的absolute()方法取出ResultSet中指定数据的信息并输出。
六、使用JDBC完成数据的增删改查
1、创建JavaBean
2、创建工具栏
由于每次操作数据库时,都需要加载数据库驱动、创建数据库连接以及关闭数据库连接,为了避免代码的重复书写,专门创建用于数据库相关操作的工具类
3、创建DAO
该类中封装了对表users的添加、查询、删除和更新等操作。
4、创建测试栏
(1)编写测试类JDBCInsertTest,实现users表中添加数据的操作
(2)编写测试类FindAllUserTest,该类用于实现读取users表中的数据。
(3)编写FindUserByTest,在该类中实现读取users表中指定的数据。
(4)编写UpdateUserTest,在该类中实现修改users表中数据的操作
(5)编写DeleteUserTest,该类实现了删除users表中的数据的操作

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值