sun公司提供访问各种关系型数据库的一套JDBC API和一个规范,有数据库厂商提供实现JDBC Driver API 的底层实现代码。在JDBC API中包含了两部分,一部分是供驱动开发人员去实现的接口,还有一部分是供应用程序员调用的API,程序员编写代码时是针对JDBC API的,而不是针对数据库厂商的实现。
l. 连接到数据库的方法
答:1) ODBC(Open Database Connectivity)
一个以C语言为基础访问SQL为基础数据库引擎的接口,它提供了一致的接口用于和数据库沟通以及访问数据。
2) JDBC
Java版本的ODBC
2. JDBC Driver的四种类型
答:1) JDBC-ODBC桥
由ODBC驱动提供JDBC访问
2) 本地API
部分Java driver把JDBC调用转化成本地的客户端API
3) JDBC-net
纯的Java driver,将JDBC调用转入DBMS,与网络协议无关。然后通过服务器将调用转为DBMS协议。
4) 本地协议
纯的java driver,将JDBC调用直接转为DBMS使用的网络协议
3 javax.sql包JDBC2.0的增强功能
答:1) 数据源接口;
2) 连接池;
3) 分布式交易;
4) 行集;
4 使用JDBC编写数据库应用程序的步骤。














5 注册驱动的三种方式



6 获取数据库连接的三个方法







7. 创建一个Statement(步骤三)
答:1) Statement的三个接口:
a. Statement;
b. PreparedStatement(继承自Statement);
c. CallableStatement(继承自PreparedStatement);
2) 使用方法Connection.createStatement()得到一个Statement对象
8 PreparedStatement对象
答:1) 调用ProparedStatement比statement更为高效;
2) 继承自Statement;
3) 语法:PreparedStatement pstm = connection.prepareStatement(sqlString);
9. CallableStatement对象
答:1) 通过CallableStatement调用数据库中的存储过程;
2) 继承自PreparedStatement;
3) CallableStatement cstm = connection.prepareCall("{call return_student[?,?]}");
cstm.setString(1,"8623034");
cstm.registerOutparameter(2, Types.REAL);
cstm.execute();
float gpa = cstm.getFloat(2);
10. Statement接口的比较
答: | Statement | PreparedStatement | CallableStatement
------------------------------------------------------------------------------
写代码位置 | 客户端 | 客户端 | 服务器端
------------------------------------------------------------------------------
写代码位置 | 客户端 | 服务器端 | 服务器端
------------------------------------------------------------------------------
编写代码技术 |Java,SQL操作 |Java,SQL操作 | 数据库的程序语言,如PL/SQL
------------------------------------------------------------------------------
可配置性 | 高 |第一次高,以后低 | 低
------------------------------------------------------------------------------
可移植性 | 高 |假设支持PreparedStatement的话高
------------------------------------------------------------------------------
传输效率 | 低 |第一次低,以后高 | 高
11. SQL数据类型及其相应的Java数据类型
答:SQL数据类型 Java数据类型 说明
------------------------------------------------------------------
INTEGER或者INT int 通常是个32位整数
SMALLINT short 通常是个16位整数
NUMBER(m,n) DECIMAL(m,n) Java.sql.Numeric 合计位数是m的定点十进制数,小数后面有n位数
DEC(m,n) Java.sql.Numeric 合计位数是m的定点十进制数,小数后面有n位数
FLOAT(n) double 运算精度为n位二进制数的浮点数
REAL float 通常是32位浮点数
DOUBLE double 通常是64位浮点数
CHARACTER(n)或CHAR(n) String 长度为n的固定长度字符串
VARCHAR(n) String 最大长度为n的可变长度字符串
BOOLEAN boolean 布尔值
DATE Java.sql.Date 根据具体设备而实现的日历日期
TIME Java.sql.Time 根据具体设备而实现的时戳
TIMESTAMP Java.sql.Timestamp 根据具体设备而实现的当日日期和时间
BLOB Java.sql.Blob 二进制大型对象
CLOB Java.sql.Clob 字符大型对象
ARRAY Java.sql.Array