前言
JDBC(Java Data Base Connectivity) 是一种用于执行SQL语句的Java API,有了JDBC API,就不必为访问Sybase数据库专门写一个程序,为访问Oracle数据库又专门写一个程序,或为访问Informix数据库又编写另一个程序等等,程序员只需用JDBC API写一个程序就够了,它可向相应数据库发送SQL调用。
简单地说,JDBC可做三件事:与数据库建立连接、发送操作数据库的语句并处理结果。
基本的JDBC组件
第一步, Java应用需要创建并建立与特定数据库的连接
通过 Driven Manager (java.sql.DriveManager)
或者通过连接 JDBC数据源 (javax.sq.DataSource)
第二步, 对数据库进行增删改查操作
- 用java.sql.Statement 和 java.sql.PreparedStatement 来执行SQL语句
第三步, 接收查询操作返回的数据
- 使用 java.sql.ResultSet
数据库连接
加载驱动
JDBC怎么用一套语法搞定一个数据库的? 其秘密就在于java的多态. 首先为JDBC注册一个数据库驱动, 然后根据这个驱动类型, 返回相应的连接.
首先加载相应的数据库驱动(以MySQL为例) :
|
|
假如想要操作的是Oracle或者HSQLDB呢?只需要把上面的com.mysql.jdbc.Driver改成org.hsqldb.jdbc.JDBCDriver 或者 org.hsqldb.jdbc.JDBCDriver
得到连接
加载了驱动之后,JDBC就知道你注册的数据库类型,这时候用java.sql.DriveManager即可得到JDBC到数据库的连接(java.sql.Connection)(可以理解为一个Socket)
|
|
注:
上面代码的URL格式为(如果要使用英文以外的字符进行存储,要加上[]里的内容):
例子(用中文存储):
操作数据库
现在我们已经通过DriverManager得到一个connection了,现在可以用SQL进行操作了,这就要用到java.sql.Statement 和 java.sql.PreparedStatement
这里以java.sql.PreparedStatement为例 :
仔细阅读代码会发现,这个类初始化的时候用到一个模板,后面就可以进行高效的批量操作了.
取得结果
如果进行查询操作的话,怎么接收返回的数据呢? 该 java.sql.ResultSet 粉墨登场了
|
|