JDBC安装详见:http://t.csdn.cn/4XsVM
一、简介
1.解释
JDBC 指 Java 数据库连接,是一种标准Java应用编程接口( JAVA API),用来连接 Java 编程语言和广泛的数据库。
JDBC API 库包含下面提到的每个任务,都是与数据库相关的常用用法。
- 制作到数据库的连接。
- 创建 SQL 或 MySQL 语句。
- 执行 SQL 或 MySQL 查询数据库。
- 查看和修改所产生的记录。
从根本上来说,JDBC 是一种规范,它提供了一套完整的接口,允许便携式访问到底层数据库,因此可以用 Java 编写不同类型的可执行文件,例如:
- Java 应用程序
- Java Applets
- Java Servlets
- Java ServerPages (JSPs)
- Enterprise JavaBeans (EJBs)
所有这些不同的可执行文件就可以使用 JDBC 驱动程序来访问数据库,这样可以方便的访问数据。JDBC 具有 ODBC 一样的性能,允许 Java 程序包含与数据库无关的代码。
2.原理
JDBC是以前SUN公司定义的一套访问数据库的接口(没有具体实现),一套标准,具体的实现是由各大数据库厂家去实现,每个数据库厂家都有自己的JDBC实现,也就是JDBC驱动实现类,Java应用程序连接指定数据库,需要使用厂家提供的JDBC驱动才能连接。(这里其实就是java多态的体现,一个接口可以有很多具体的实现)
二、JDBC 架构
JDBC分为双层架构和三层架构。
1.双层
作用:此架构中,Java Applet 或应用直接访问数据源。
条件:要求 Driver 能与访问的数据库交互。
机制:用户命令传给数据库或其他数据源,随之结果被返回。
部署:数据源可以在另一台机器上,用户通过网络连接,称为 C/S配置(可以是内联网或互联网)。
2.三层
侧架构特殊之处在于,引入中间层服务。
流程:命令和结构都会经过该层。
吸引:可以增加企业数据的访问控制,以及多种类型的更新;另外,也可简化应用的部署,并在多数情况下有性能优势。
历史趋势: 以往,因性能问题,中间层都用 C 或 C++ 编写,随着优化编译器(将 Java 字节码 转为 高效的 特定机器码)和技术的发展,如EJB,Java 开始用于中间层的开发这也让 Java 的优势突显出现出来,使用 Java 作为服务器代码语言,JDBC随之被重视。
三、常见的JDBC组件
如下所示为JDBC开发中主要用到的类。
- DriverManager :这个类管理一系列数据库驱动程序。匹配连接使用通信子协议从 JAVA 应用程序中请求合适的数据库驱动程序。识别 JDBC 下某个子协议的第一驱动程序将被用于建立数据库连接。
- Driver : 这个接口处理与数据库服务器的通信。你将很少直接与驱动程序互动。相反,你使用 DriverManager 中的对象,它管理此类型的对象。它也抽象与驱动程序对象工作相关的详细信息。
- Connection : 此接口具有接触数据库的所有方法。该连接对象表示通信上下文,即,所有与数据库的通信仅通过这个连接对象进行。
- Statement : 使用创建于这个接口的对象将 SQL 语句提交到数据库。除了执行存储过程以外,一些派生的接口也接受参数。
- ResultSet : 在你使用语句对象执行 SQL 查询后,这些对象保存从数据获得的数据。它作为一个迭代器,让您可以通过它的数据来移动。
- SQLException : 这个类处理发生在数据库应用程序的任何错误。
四、事务处理
事物:由一组SQL语句组成。
事务处理:应用程序保证事务中的SQL语句要么全部执行,要么一个都不执行。
(注:事务处理是保证数据库中数据完整性与一致性的重要机制)
1.用setAutoCommit(booean b)方法关闭自动提交模式
关闭自动提交模式,就是关闭SQL语句的即刻生效性。
注:要先关闭自动提交模式,再获取Statement对象sql。
例:
con.setAutoCommit(false);
sql=con.createStatement();
2.用commit()方法处理事务
con调用setAutoCommit(false)后,con所产生的Statement对象对数据库提交任何一条SQL语句都不会立刻生效,这样一来,就有机会让Statement对象提交多条sq语句,这些SQL语句就是一个事务。事务中的SQL语句不会立刻生效,直到对象con调用commit()方法,试图让事务中的SQL语句全部生效。
3.用rollback()方法处理事务失败
事务失败:就是撤销事务所做的操作。在con调用commit()方法进行事务处理时,只要事务中任何一个SQL语句未能成功生效,就会报异常。此时,必须让con调用rollback()方法,撤销事务中成功执行的SQL语句对数据库的操作。