神通JDBC对于JDBC规范的支持

神通数据库 JDBC驱动是基于JDBC3.0规范而实现的。在以前的JDBC2.0规范中,将API分为核心API和扩展API。JDBC3.0规范包含了JDBC2.0规范的核心API以及JDBC2.0的扩展API,并添加了一些新的特性。神通数据库 JDBC驱动实现了JDBC3.0规范中的大部分接口,主要包括下列接口:

java.sql.Dirver

java.sql.Connection

java.sql.Statement

java.sql.PreparedStatement

java.sql.CallableStatement

java.sql.ResultSet

java.sql.DatabaseMetaData

java.sql.ResultSetMetaData

java.sql.ParameterMetaData

java.sql.Blob

java.sql.Clob

java.sql.Savepoint

javax.sql.DataSource

javax.sqlConnectionPoolDataSource

javax.sql.PooledConnection

神通数据库JDBC驱动对于上述每个接口的方法,基本上提供了实现。 除了JDBC要求的基本特性之外,比如执行一般的SQL语句,可以对从结果集取得数据等,遵照JDBC3.0的规范, 神通数据库JDBC驱动还提供了一些JDBC的特殊特性:

按照JDBC规范,提供了类型之间的相互转换,比如int和String之间的转化,String和java.sql.Date之间的转化, 具体的内容,请参照《JDBC3.0规范》

对于Statement,PreparedStatement和CallableStatement提供了对于批处理语句的支持。 通过批处理语句,可以提高应用程序的性能。具体内容可以参照批处理一章。

实现了对ResultSet的各种特性的支持,这些特性是在创建Statement对象、PreparedStatement对象和CallableStatement对象时指定的。

Type包括:

  • TYPE_FORWARDONLY
  • TYPE_SCROLL_INSENSITIVE
  • TYPE_SCROLL_SENSITIVE

Concurrency包括:

  • CONCUR_READ_ONLY
  • CONCUR_UPDATABLE

Holdability包括:

  • HOLD_CURSORS_OVER_COMMIT
  • HOLD_CURSOR_AT_COMMIT

在神通数据库JDBC驱动中对这些特性都给出了较好的实现。具体说明将在结果集一章中给出。

允许用户在Statement和ResultSet中设置fetchSize,通过设置fetchSize,对于记录数很大的情况下,可以极大的降低对内存的使用量。

提供了获取auto generated key的方法。数据库在新插入一条记录时,往往会自动产生该记录的唯一标识。 神通数据库JDBC驱动中给出了让用户获得auto generated key的方法。

对于PreparedStatment,CallableStatmen,用户可以调用getParameterMetaData()方法,获得关于用户在SQL语句中参数的信息。 这些参数信息都分装在ParameterMetaData对象中。

同样对于PreparedStatment,CallableStatmen,用户可以调用getMetaData()方法,获得关于SQL语句执行完后结果集的信息。 这些结果集信息都分装在ResultSetMetaData对象中。这样用户在还没有执行SQL语句的情况下,获得关于结果集的信息。

支持多结果集返回。在执行完查询后,用户可以调用getMoreResults()方法,获得多个结果集。

支持对于Blob和Clob这两种接口的所有操作,包括定位更新数据,截取大对象,设置流进行操作等。具体在大对象一章中给出。

支持保存点Savepoint,实现了设置、删除、回退Savepoint。增强了用户对事务的操作能力。