JDBC教程

目标:

设计多层数据库应用架构

用JDBC1.0建设一个多层数据库应用架构

面向对象的数据库应用设计

JDBC2.0的新属性介绍

 

内容:

 

JDBC简介

使用JDBC

OOAD和数据库设计

JDBC高级话题

JDBC标准扩展

Row set 实现

JDBC 和应用程序架构

 

第一部分  JDBC简介

 

JDBC 是Java Database Connectivity的简称

 

连接数据库的方法分为

 

1. ODBC:基于C的接口连接基于SQL的数据库引擎

2. JDBC:Java版本的ODBC

 

JDBC可以实现:

 

1. 连接数据库

2.发送SQL请求

3.处理数据库的返回结果

 

四种类型的JDBC Driver

 

1. 桥接ODBC

 2. 调用本地的RDBMS接口

3. 调用DBMS的服务

4. 通过网络协议与DBMS交流

 

JDBC的API:java.sql和javax.sql,其中javax.sql是Java2的扩展功能。

 

相关的接口和类

 

Driver

DriverManager

Connetion

Statement

PreparedStatement

CallableStatement

ResultSet

DatabaseMetadata

ResultSetMetadata

Types

 

第二部分  使用JDBC

 

使用JDBC的流程

 

1. 注册一个JDBC驱动(JDBCDriver)

2. 创建一个JDBC连接

3. 创建一个Statement

4. 执行一个SQL

5. 处理返回结果

6. 关闭JDBC连接

 

1. 注册一个JDBC驱动

 

 

 JDBC驱动是用来连接数据库的,JDBC的API会加载第一个可以连接的驱动,所以你可以定义多个驱动。

 

 

 经常使用的JDBC驱动

 

1. JDBC-ODBC:sun.jdbc.odbc.JdbcOdbcDriver

2. Oracle: oracle.jdbc.driver.OracleDriver

 

 

 2. 创建一个JDBC连接

1. DriverManager类调用getConnection(urlString)函数

2. 如果驱动返回成功,DriverManager创建一个链接

3. 如果失败,返回null,并检查下一个驱动

 

经常使用的连接url

 

1. JDBC-ODBC: jdbc:odbc:<DB>

2. Oracle:

jdbc:oracle:oci:@<SID>

jdbc:oracle:thin:@<SID>

 

3. 调用getConnection的两种方法

 

  1. getConnection(String url)
  2. getConnection(String url,java.util.Properties info)
  3. getConnection(String url,Stirng user,String password)

    其中getConnection(String url,java.util.Properties info),可以属性写入属性文件里面,用java.util.Properties类来加载。

 

    如:

   

Class.forName(sDBDriver);
			Properties properties = new Properties();
			FileInputStream fis = new FileInputStream(new File(new URI(
					"file:///d:/jdbc.properties")));
			properties.load(fis);

			Connection conn = DriverManager.getConnection(sConnStr, properties);

 

 也可以使用驱动直接连接的方法:

 

Properties properties = new Properties();
			FileInputStream fis = new FileInputStream(new File(new URI(
					"file:///d:/jdbc.properties")));
			properties.load(fis);
			com.microsoft.jdbc.sqlserver.SQLServerDriver driver = new com.microsoft.jdbc.sqlserver.SQLServerDriver();
			Connection conn = driver.connect(sConnStr, properties);

 

这个时候就不需要:Class.forName

 

 3. 创建一个Statement

创建一个Statement对象,通过Connection.createStatement的方法。

 

在多次进行查询时,PreparedStatement比Statement更有效率。

 

CallableStatement对象,让你可以使用SQL请求以外的请求,例如存储过程。

 

4. 执行SQL

 

执行SQL通过三个方法分别是:

 

executeQuery();        // 用来查询

executeUpdate();      // 用来更新

execute();                 // 用来执行存储过程

 

5. 处理返回结果

 

ResultSet会保持当前的游标,最初ResultSet的游标会在第一行之前。

 

6. 关闭数据库连接

应该按ResultSet,Statement,Connection的顺序把连接关闭

 

if(rs!=null){
					try{
						rs.close();
					}catch(Exception ex){
						ex.printStackTrace();
					}
				}
				if(ps!=null){
					try{
						ps.close();
					}catch(Exception ex){
						ex.printStackTrace();
					}
				}
				if(conn!=null){
					try{
						conn.close();
					}catch(Exception ex){
						ex.printStackTrace();
					}
				}

 

 

 第三部分:OOAD与数据库设计

 

每个表的都应该有一个id的属性来标识自己的对象唯一性。一般id应该是数据库里面的主键。可以用IDs对象来表示表里面多重主键的情况。

 

第四部分 JDBC高级话题

 

1. 异常

 

SQLException通常会在下列情况发生:

(1) JDBC与服务器端的联系丢失

(2)你执行了错误的指令

(3)你执行了不被支持的函数

(4)你引用的行不存在

 

 

 

你可能感兴趣的:(JDBC OOAD)