文档库 最新最全的文档下载
当前位置:文档库 › 1.JDBC原理

1.JDBC原理

JDBC原理

1.JDBC是什么

Java Database Connectivity:java访问数据库的解决方案。

JDBC是java应用程序访问数据库的里程碑是解决方案。java研发者希望用相同的方式去访问不同的数据库,
以实现与具体数据库无关的java操作界面。

JDBC定义了一套标准接口,即访问数据库的通用API,不同的数据库厂商根据各自数据库的特点去实现这些接口。

2.JDBC中的接口

2.1驱动管理
*DriverManager
2.2连接接口
*Connection
*DatabasemetaData
2.3语句对象接口
*Statement
*PreparedStatement
*CallableStatement
2.4结果集接口
*ResultSet
*ResultSetMetaData

3.JDBC工作原理

JDBC只定义接口,具体实现由各个数据库厂商负责。
程序员使用时只需要调用接口,实际调用的是底层数据库厂商的实现部分。

4.JDBC访问数据库的工作过程

1.加载驱动,建立连接
2.创建SQL语句
3.执行SQL语句
4.处理结果集
5.关闭连接

5.各个接口的具体实现

5.1 Driver接口

要使用JDBC接口,需要先将对应数据库的实现部分(驱动)加载进来。
驱动类加载方式(Oracle):

Class.forName("oracle.jdbc.driver.OracleDriver");

这条语句的含义是:装载驱动类,驱动类通过static块实现在DriverManager中的“自动注册”。

5.2 Connection接口

Connection接口负责应用程序对数据库的连接。
在加载驱动之后,使用url、username、password三个参数,创建到具体数据库的连接。
例如:

Class.forName("oracle.jdbc.OracleDriver")
//根据url连接参数,找到与之匹配的Driver对象,调用其方法获取连接
Connection conn = DriverManager.getConnection(
"jdbc:oracle:thin:@192.168.0.26:1521:tarena",
"openlab","open123");

需要注意的是:Connection只是接口,真正的实现是由数据库厂商提供的驱动包完成的。

5.3 Statement接口

Statement接口用来处理发送到数据库的SQL语句对象,通过Connection对象创建。
主要有三个常用方法:

Statement state = conn.createStatement();

*boolean b = state.execute(sql);
//execute方法,如果执行的sql是查询语句且有结果集则返回

true,如果是非查询语句或者没有结果集,返回false

*ResultSet rs = state.executeQuery(sql);
//执行查询语句,返回结果集

*int i = state.executeUpdate(sql);
//执行DML语句,返回影响的记录数

5.4 ResultSet接口

执行查询SQL语句后返回的结果集,由ResultSet接口接收。
常用处理方式:遍历 / 判断是否有结果(登录)。
例如:

String sql = "SELECT * FROM emp";
ResultSet rs = state.executeQuery(sql);
while(rs.next()){
int empno = rs.getInt("empno");
String ename = rs.getString("ename");
System.out.println(empno+","+ename);
}

查询的结果存放在ResultSet对象的一系列行中,指针的最初位置在行首,使用next()方法用来在行间移动.
getXXX()方法用来取得字段的内容。

6.数据库厂商实现

在Java程序中访问不同数据库,需要下载对应数据库的驱动。

6.1 Oracle实现

数据库提供的驱动为ojdbc6.jar或者ojdbc14.jar,在开发时需要将驱动类加载到项目中,通过设置MyEclipse的Build Path选项。
使用时就可以如下方式加载驱动类了:

Class.forName("oracle.jdbc.driver.OracleDriver");

6.2 MySQL实现

MySQL对应的数据库驱动名为mysql-connector-java-5.0.4-bin.jar,
将驱动类加载到项目中同样通过设置MyEclipse的Build Path选项。
加载驱动类的方式:

Class.forName("com.mysql.jdbc.Driver");








相关文档