之前一直听说过JDBC,但从来不知道它是何物的小伙伴们看过来啦!
一、概述
JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成,是Java访问数据库的标准规范。
我们安装好数据库之后,我们的应用程序也是不能直接使用数据库的,必须要通过相应的数据库驱动程序,通过驱动程序去和数据库打交道。驱动是两个设备要进行通信,满足一定通信数据格式,数据格式由设备提供商规定,设备提供商为设备提供驱动软件,通过软件可以与该设备进行通信。
有了JDBC,程序员只需用JDBC API写一个程序,就可以访问所有数据库。将Java语言和JDBC结合起来使程序员不必为不同的平台编写不同的应用程序,只须写一遍程序就可以让它在任何平台上运行,这也是Java语言“编写一次,处处运行”的优势。
JDBCAPI提供者是sun公司,供程序员调用的接口与类,集成在java.sql和javax.sql包中,可以管理各种不同的JDBC驱动,如:
1. DriverManager类:Driver接口由数据库厂家提供,作为java开发人员,只需要使用Driver接口就可以了。
2. Connection接口:Connection与特定数据库的连接(会话),在连接上下文中执行sql语句并返回结果。
3.Statement接口:用于执行静态SQL语句并返回它所生成结果的对象。
4.ResultSet接口:ResultSet提供检索不同类型字段的方法。
JDBC驱动的提供者是数据库厂商,负责连接各种不同的数据库。
JDBC对Java程序员而言是API,对实现与数据库连接的服务提供商而言是接口模型。
那么JDBCAPI、JDBC驱动和JDBC三者有什么关系呢?
SUN公司是规范制定者,制定了规范JDBC(连接数据库规范);数据库厂商微软、甲骨文等分别提供实现JDBC接口的驱动jar包;程序员学习JDBC规范来应用这些jar包里的类。
JDBC访问数据库步骤:1.加载一个Driver驱动;2.创建数据库连接(Connection);3.创建SQL命令发送器Statement;4.通过Statement发送SQL命令并得到结果;5.处理结果(select语句);6.关闭数据库资源
二、JDBC语法总结
1. 加载驱动
2. 创建数据库连接
3. 创建Statement并发送命令
4. 处理ResultSet结果
5. 关闭数据库资源
三、使用PreparedSatement完善JDBC操作
如果需要多次执行一个SQL语句,可以使用PreparedStatement对象。在创建 PreparedStatement对象时,通过传递不同参数值多次执行PreparedStatement对象,可 以得到多个不同的结果。优势:执行效率高、代码可读性强、安全性高。
四、手动启动事务管理
在JDBC中,事务操作缺省是自动提交。一条对数据库的更新表达式代表一项事务操作,操作成功后,系统将自动调用commit()提交,否则调用rollback()回滚。
在JDBC中,事务操作方法都位于接口java.sql.Connection中,可以通过调用setAutoCommit(false)来禁止自动提交。之后就可以把多个数据库操作的表达式作为一个事务,在操作完成后调用commit()来进行整体提交,倘若其中一个表达式操作失败,都不会执行到commit(),并且将产生响应的异常;此时就可以在异常捕获时调用rollback()进行回滚,回复至数据初始状态。
事务结束的边界是commit或者rollback方法的调用。事务开始的边界则不是那么明显了,它会开始于组成当前事务的所有statement中的第一个被执行的时候。
五、采用分层实现JDBC案例
完成对雇员数据的多种操作
• 查询所有雇员
• 按照编号查询雇员
• 添加雇员
• 删除雇员
• 具体实现
• 定义包结构
• 定义实体类Employee
• 定义EmployeeDao接口
• 定义EmployeeDaoImpl
• 抽取BaseDao • 测试