时间:2022-12-27 04:30:01 | 来源:信息时代
时间:2022-12-27 04:30:01 来源:信息时代
JDBC符合性测试 : 度量JDBC驱动程序符合JDBC API规范的程度。JDBC(Java database connection)是Sun公司制定的Java程序数据库访问规范,已经发布了1.0版本、2.0版本、3.0版本,4.0版本已进入最后建议草案阶段。
JDBC API实现包括上层JDBC驱动程序和下层数据源两个部分,JDBC符合性主要考察JDBC驱动程序所提供的功能特征。JDBC符合性基本要求包括:
(1)一个JDBC API实现必须支持入门级的SQL92标准要求(entry level SQL92)外加一个SQL命令Drop Table(该命令的CASCADE与RESTRICT参数可以不支持)。如果支持SQL99标准,则应满足SQL99标准相应部分的要求。
(2)数据库驱动程序必须支持转义语法(escape syntax),必须支持事务处理。
(3)数据库驱动程序要支持访问指定数据源所实现的每一项功能,包括JDBC API未覆盖的功能。
(4)如果DatabaseMetaData方法表明某个特定功能得到实现,则这个实现必须遵循相应语法和语意的要求。即,数据源应用程序接口或SQL方言与JDBC规范要求的不一致,则该JDBC API实现须完成两者之间的转换。
(5)如果实现了规范中要求的某项功能,则相应的元数据方法也必须实现。
(6) 如果规范中要求的某项功能没有实现,DatabaseMetaData相应方法必须返回否; 当用户访问没有实现的功能,相应的方法必须返回例外(SQLException)。
(7)JDBC五类标量函数(数值函数,字符串函数,时间日期函数,系统功能函数及转换函数)的名称列表,必须能通过DatabaseMetaData的方法获取。
(8)如果支持指定位置更新和删除两项功能,数据库管理系统及相应驱动程序必须确保选定的行在修改或删除时,被正确地加锁。
(9) JDBC要求java.sql和javax.sql中所有的操作都是线程安全的。
(10)从数据安全及应用系统安全的角度来看,驱动程序须提供共享TCP连接安全检查、本地文件访问检查等功能,并且在设计与实现时作最坏的安全环境假设。
JDBC 3.0 API综合了以前JDBC API规范的内容,包括JDBC 2.1核心API、JDBC 2.0 Optional Package API、JDBC 1.2 API、JDBC 1.0 API。
JDBC 1.0、JDBC 2.0、JDBC 3.0的符合性除了满足上述基本要求外,还需要满足各版本特定的要求。
从JDBC 2.0 API规范开始,下列类构建器和方法不建议使用(在将来的版本中可能会删除):
java.sql.CallableStatement.getBigDecimal(int,int)
java.sql.Date(int,int,int)
java.sql.Date.getHours()
java.sql.Date.getMinutes()
java.sql.Date.getSeconds()
java.sql.Date.setsetHours(int)
java.sql.Date.setMinutes(int)
java.sql.Date.setSeconds(int)
java.sql.DriverManager.getLogStream()
java.sql.DriverManager.setLogStream(PrintStrea m)
java.sql.PreparedStatement.setUnicodeStream(int,InputStream,int)
java.sql.ResultSet.getBigDecimal(int,int)
java.sql.ResultSet.getBigDecimal(String,int)
java.sql.ResultSet.getUnicodeStream(int)
java.sql.ResultSet.getUnicodeStream(String)
java.sql.Time(int,int,int)
java.sql.Time.getDate()
java.sql.Time.getDay()
java.sql.Time.getMonth()
java.sql.Time.getYear()
java.sql.Time.setDate(int)
java.sql.Time.setMonth(int)
java.sql.Time.setYear(int)java.sql.Timestamp(int,int,int,int,int,int,int)
各版本JDBC符合性要求如下:
JDBC 1.0 API符合性要求:完整实现下列接口:java.sql.Driver、java.sql.DatabaseMetaData(不包括JDBC 2.0 API和JDBC 3.0 API引入的内容)、java.sql.ResultSetMetaData(不包括JDBC 2.0 API和JDBC 3.0 API引入的内容),以及下列必须的接口:java.sql.CallableStatement、java.sql.Connection、java.sql.PreparedStatement、java.sql.ResultSet、java.sql.Statement。
JDBC 2.0 API符合性要求:包括JDBC 1.0 API符合性要求; 完整实现DatabaseMetaData接口,以及下列JDBC 2.0 API增加的方法: ownDeletesAre Visible、getConnection、insertsAreDetected、updates AreDetected、ownInsertsAreVisible、othersDeletesAre Visible、othersInsertsAreVisible、getUDTs、others UpdatesAreVisible、deletesAreDetected、ownUpdates AreVisible、supportsBatchUpdates、supportsResultSet Concurrency、supportsResultSetType;实现ResultSet MetaData的下述方法: getColumnClassName、get ColumnType、getColumnTypeName。
JDBC 3.0 API符合性要求:包括JDBC 2.0 API符合性要求;实现以下两个接口:java.sql.Parameter MetaData、java.sql.Savepoint; 完整实现DatabaseMeta Data接口,包括下列JDBC3.0 API增加的方法:supportsSavepoints 、supportsNamedParameters 、supportsGetGeneratedKeys、supportsMultipleOpen Results、getAttributes、support sResultSetHoldability getSuperTypes、getSuperTables、getResultSet Holdability、getSQLStateType、getDatabaseMajor Version、getDatabaseMinorVersion、getJDBCMajor Version、getJDBCMinorVersion。
关键词:数据,测试,符合