包 java.sql
接口索引
CallableStatementConnection
DatabaseMetaData
Driver
PreparedStatement
ResultSet
ResultSetMetaData
Statement
类索引
DateDriverManager
DriverPropertyInfo
Time
Timestamp
Types
异常索引
DataTruncation
SQLException
SQLWarning
——————————————————————————————————————————————
常用接口介绍:
-
public interface Driver
Java SQL 框架允许用于多个数据库驱动程序。
每个驱动程序应提供实现驱动程序接口的一个类。
DriverManager 将加载所能查找到的尽可能多的驱动程序,然后对任何给定连接请求,试着将每个驱动程序依次连接到目标 URL 。
建议每个 Driver 类都应该短小并且独立,以便不必引用大量支持代码就能加载和查询 Driver 类。
加载一个 Driver 类时,应创建自身的实例并用 DriverManager 注册。这意味着使用 Class.forName("foo.bah.Driver") 用户就能加载和注册一个驱动程序。
方法
public abstract Connection connect(String url, Properties info) throws SQLException
-
试图建立到给定 URL 的数据库连接。若认识到连接给定 URL 的驱动程序是错误的,则该驱动程序应返回“ null ”。通常, 当请求 JDBC 驱动程序管理者连接到某个给定 URL 时,它依次向每个加载的驱动程序传送 URL 。
若连接到给定 URL 的驱动程序是正确的,但连接到数据库有困难,则该驱动程序应引起 SQLException 。
用 java.util.Properties 参数作为连接参数可传送任意字符串标记/值对。通常 Properties 里至少应包括“用户”和“口令”特性。
-
-
参数:
- url - 待连接的数据库的 URL
- info - 作为连接参数的任意字符串标记/值对的列表;通常至少应包括“用户”和“口令”特性 返回值:
- 与 URL 的一个连接 抛出: SQLException
- 若发生了数据库访问错误。
public abstract boolean acceptsURL(String url) throws SQLException
-
若驱动程序能打开与给定 URL 的连接,则返回 true 。若驱动程序能理解 URL 中所指定的子协议,则驱动程序返回 true ,若不能理解则返回 false 。
-
-
参数:
- url - 数据库的 URL 返回值:
- 若该驱动程序能连接到给定 URL ,则为 true 。 抛出: SQLException
- 若发生了数据库访问错误。
public abstract DriverPropertyInfo[] getPropertyInfo(String url, Properties info) throws SQLException
-
getPropertyInfo 方法能让通用的 GUI 工具知道应该向用户提示什么样的属性,从而使得用户有足够的信息去连接一个数据库。注意:根据用户目前所提供的数值要求,附加信息也许成为必需的了,因此可能有必要调用几个 getPropertyInfo 来迭代。
-
-
参数:
- url - 待连接的数据库的 URL
- info - 连接打开时将要发送标记/值对的建议列表。 返回值:
- 描述可能特性的 DriverPropertyInfo 对象数组。若无特性请求,则该数组可为空。 抛出: SQLException
- 若发生了数据库访问错误。
public abstract int getMajorVersion()
-
获取驱动程序的主版本号。初始应为 1 。
public abstract int getMinorVersion()
-
获取驱动程序的次版本号。初始应为 0 。
public abstract boolean jdbcCompliant()
-
报告驱动程序是否是真正的 JDBC COMPLIANT(tm) 的驱动程序。若驱动程序发送 JDBC 适应测试, 则驱动程序可能只报告“ true ”,否则返回 false 。 JDBC 适应性要求全部支持 JDBC API 和 SQL 92 输入项级别。要求适应 JDBC 的驱动程序对所有主要的经济数据库是可用的。该方法不鼓励开发不适应 JDBC 的驱动程序,但承认有些销售商有兴趣用 JDBC API 和框架开发不支持全部数据库功能的低开销数据库或某些特殊数据库,如不能用 SQL 实现的文档信息检索。
-
public interface Connection
一个 Connection 表示与一个特定数据库的会话。在一个 Connection 的上下文中,执行 SQL 语句并返回结果。
一个 Connection 的数据库能够提供描述以下内容的信息,它的表,它支持 SQL 语法,它的存储过程,该连接的能力等等。该信息可用 getMetaData 方法获得。
注意: 缺省情况下,在执行完每一个语句之后,Connection 自动地提交更改。如果禁止自动提交,必须进行显式的提交,否则将不保存对数据库的更改。
变量
public static final int TRANSACTION_NONE
-
不支持事务。
public static final int TRANSACTION_READ_UNCOMMITTED
-
可能发生页面重写读取,不可重复的读取和幻象读取。
public static final int TRANSACTION_READ_COMMITTED
-
防止页面重写读取;可能发生不可重复的读取和幻象读取。
public static final int TRANSACTION_REPEATABLE_READ
-
防止页面重写读取和不可重复的读取,但可能发生幻象读取。
public static final int TRANSACTION_SERIALIZABLE
-
防止页面重写读取,不可重复的读取和幻象读取。
方法
public abstract Statement createStatement() throws SQLException
-
不带参数的 SQL 语句通常用 Statement 对象执行。 如果多次执行同一个 SQL 语句,使用一个 PreparedStatement 就更有效。
-
-
返回值:
- 一个新建的 Statement 对象 抛出: SQLException
- 如果发生了数据访问错误。
public abstract PreparedStatement prepareStatement(String sql) throws SQLException
-
一条带有或不带 IN 参数的 SQL 语句可以被预编译并存放在 PreparedStatement 对象中。 该对象可用于有效地多次执行该语句。
注意: 为了处理那些能由预编译得到好处的带参数的 SQL 语句,该方法进行了专门的优化。如果驱动程序支持预编译,prepareStatement 将把该语句发送给数据库进行预编译。有些驱动程序不支持预编译。在这种情况下,在执行 PreparedStatement 语句之前,将不把语句发送到数据库。这对用户没有直接的影响;但是它确实影响某些 SQLExceptions 将由哪个方法抛出 。
-
-
参数:
- sql - 一个 SQL 语句,它可以包含一个或多个 '?' IN 参数的位置标志符。 返回值:
- 一个包含该预编译语句的新建的 PreparedStatement 对象。 抛出: SQLException
- 如果发生了数据访问错误。
public abstract CallableStatement prepareCall(String sql) throws SQLException
-
通过创建一个 CallableStatement 来处理一个 SQL 存储过程调用语句。CallableStatement 提供了设置其 IN 和 OUT 参数的方法和执行它的方法。
注意: 为了处理存储过程调用语句对该方法进行了优化。当 prepareCall 完成时,有些驱动程序可能把调用语句发送给数据库;其它的语句可能等到执行 CallableStatement 时发送。这对用户没有直接的影响;但是它确实影响到哪个方法抛出一定的 SQLExceptions。
-
-
参数:
- sql - 一个 SQL 语句,它可以包含一个或多个 '?',参数的位置标志符。 通常这个语句是一个 JDBC 功能调用转义字符串。 返回值:
- 一个包含该预编译的 SQL 语句的新建的 CallableStatement 对象。 抛出: SQLException
- 如果发生了数据访问错误。
public abstract String nativeSQL(String sql) throws SQLException
-
在发送之前,一个驱动程序把 JDBC sql 语法转换为它的系统本地的 SQL 语法;nativeSQL 将返回驱动程序要发送语句的本地形式。
-
-
参数:
- sql - 一个 SQL 语句,它可以包含一个或多个 '?',参数的位置标志符 返回值:
- 该语句的本地格式 抛出: SQLException
- 如果发生了数据访问错误。
public abstract void setAutoCommit(boolean autoCommit) throws SQLException
-
如果一个连接处于自动提交状态,它所有的 SQL 语句将被执行并作为单个事务被提交。否则,它的 SQL 语句将被分为事务组,由 commit() 或 rollback() 终止。缺省情况下,新建的连接处于自动提交模式。无论下面两种情况哪个先发生都进行提交:语句完成或执行下一条语句。在语句返回一个 ResultSet 的情况下,语句将在检索完 ResultSet 的最后一行或关闭 ResultSet 时完成。在复杂的情况下,单条语句可能返回多个结果,和多个输出参数值。在此只有当已经取出所有的结果和参数值后才进行提交。
-
-
参数:
- autoCommit - 如果为 true 则启动自动提交;否则禁止自动提交。 抛出: SQLException
- 如果发生了数据访问错误。
public abstract boolean getAutoCommit() throws SQLException
-
获得当前自动提交状态。
-
-
返回值:
- 自动提交模式的当前状态。 抛出: SQLException
- 如果发生了数据访问错误。 参见:
- setAutoCommit
public abstract void commit() throws SQLException
-
提交从上一次提交 / 回滚操作后的更改,使之成为永久的更改,并释放 Connection 当前保持的任何数据库锁。 只有当禁止自动提交时可以使用该方法。
-
-
抛出:
SQLException
- 如果发生了数据访问错误。 参见:
- setAutoCommit
public abstract void rollback() throws SQLException
-
回滚撤消从上一次提交 / 回滚操作后的所有更改,并释放 Connection 当前保持的任何数据库锁。 只有当禁止自动提交时可以使用该方法。
-
-
抛出:
SQLException
- 如果发生了数据访问错误。 参见:
- setAutoCommit
public abstract void close() throws SQLException
-
在有些情况下,需要立即释放 Connection 的数据库和 JDBC 资源,而不是等待它们被自动释放;close 方法可以进行立即释放。
注意: 当一个 Connection 由垃圾箱收集时,它被自动关闭。 一定的致命错误也将使 Connection 关闭。
-
-
抛出:
SQLException
- 如果发生了数据访问错误。
public abstract boolean isClosed() throws SQLException
-
检测一个 Connection 是否被关闭。
-
-
返回值:
- 如果连接被关闭则为 true,如果它仍然打开则为 false。 抛出: SQLException
- 如果发生了数据访问错误。
public abstract DatabaseMetaData getMetaData() throws SQLException
-
一个 Connection 的数据库提供了描述以下内容的信息,它的表,它支持 SQL 语法,它的存储过程,该连接的能力等等。通过一个 DatabaxeMetaData 对象可以使用这些信息。
-
-
返回值:
- 该 Connection 的一个 DatabaseMetaData 对象。 抛出: SQLException
- 如果发生了数据访问错误。
public abstract void setReadOnly(boolean readOnly) throws SQLException
-
可以把一个连接设置为只读模式,作为启动数据库优化的提示。
注意: 不能在事务执行的中间调用 setReadOnly。
-
-
参数:
- readOnly - 如果为 true 则启动只读模式;如果为 false 则禁止只读模式。 抛出: SQLException
- 如果发生了数据访问错误。
public abstract boolean isReadOnly() throws SQLException
-
检测该连接是否在只读状态。
-
-
返回值:
- 如果连接是只读的则为 true。 抛出: SQLException
- 如果发生了数据访问错误。
public abstract void setCatalog(String catalog) throws SQLException
-
通过设置一个分类表名,可以选择该 Connection 的数据库的一个子空间。 如果该驱动程序不支持分类表,它将忽略该请求。
-
-
抛出:
SQLException
- 如果发生了数据访问错误。
public abstract String getCatalog() throws SQLException
-
返回 Connection 的当前分类表名。
-
-
返回值:
- 当前分类表名或 null。 抛出: SQLException
- 如果发生了数据访问错误。
public abstrac