首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > 其他数据库 >

JDBC课程

2012-07-02 
JDBC教程目标:设计多层数据库应用架构用JDBC1.0建设一个多层数据库应用架构面向对象的数据库应用设计JDBC2

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的两种方法

?

    getConnection(String url)getConnection(String url,java.util.Properties info)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)你引用的行不存在

?

?

?

热点排行