包 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 abstract void setTransactionIsolation(int level) throws SQLException
-
可以用一个 TRANSACTION_* 值调用该方法,改变事务的隔离级别。
注意: 不能在事务执行的中间调用 setTransactionIsolation。
-
-
参数:
- level - 一个具有 TRANSACTION_NONE 异常的 TRANSACTION_* 隔离值;有些数据库不支持其它的值。 抛出: SQLException
- 如果发生了数据访问错误。 参见:
- supportsTransactionIsolationLevel
public abstract int getTransactionIsolation() throws SQLException
-
获得该 Connection 的当前事务隔离模式。
-
-
返回值:
- 当前 TRANSACTION_* 模式的值。 抛出: SQLException
- 如果发生了数据访问错误。
public abstract SQLWarning getWarnings() throws SQLException
-
返回在该 Connection 上的调用报告的第一个警告。
注意: 后继的警告将被链接到这个 SQLWarning 上。
-
-
返回值:
- 第一个 SQLWarning 或 null 抛出: SQLException
- 如果发生了数据访问错误。
public abstract void clearWarnings() throws SQLException
-
此调用完成之后,以后的 getWarnings 将返回 null,直到为该 Connection 报告了一个新的警告。
-
-
抛出:
SQLException
- 如果发生了数据访问错误。
-
public interface Statement
Statement 对象用于执行一条静态的 SQL 语句并获取它产生的结果。
任何时侯每条语句仅能打开一个 ResultSet 。因此,如果对一个 ResultSet 的读出与另一个 ResultSet 的读出交错,那么每个 ResultSet 一定由不同的语句产生。如果有 ResultSet 存在,所有的语句执行方法都隐式关闭当前的 ResultSet 。
方法
public abstract ResultSet executeQuery(String sql) throws SQLException
-
执行一条返回单个 ResultSet 的 SQL 语句。
-
-
参数:
- sql - 典型地,这是静态的 SQL SELECT 语句 返回值:
- 包含由查询产生的数据的 ResultSet;永远不为 null 。 抛出: SQLException
- 如果发生了数据访问错误。
public abstract int executeUpdate(String sql) throws SQLException
-
执行一条 SQL INSERT、UPDATE 或 DELETE 语句。 另外,可执行没有返回值的 SQL 语句,如 SQL DDL 语句。
-
-
参数:
- sql - 一条 SQL INSERT、UPDATE 或 DELETE 语句或没有返回值的 SQL 语句 返回值:
- 如果执行 INSERT、UPDATE 或 DELETE 语句返回行数或者为执行没有返回值的语句返回 0 抛出: SQLException
- 如果发生了数据访问错误。
public abstract void close() throws SQLException
-
在很多情况下,在语句自动关闭时立即释放该语句的数据库和 JDBC 资源是需要的;close 方法就是这种立即释放方法。
注意: 当语句收集到垃圾箱,它被自动关闭。如果一条语句关闭,那么它的 ResultSet 如果存在的话也将被关闭。
-
-
抛出:
SQLException
- 如果发生了数据访问错误。
public abstract int getMaxFieldSize() throws SQLException
-
maxFieldSize 限制(以字节为单位)是可为任何列值返回的数据的最大数量;它仅适用于 BINARY、VARBINARY、LONGVARBINARY、CHAR、VARCHAR 和 LONGVARCHAR 列。如果超过这个限制,超过的数据将被抛弃。
-
-
返回值:
- 当前的最大列尺寸限制;零表示无限制。 抛出: SQLException
- 如果发生了数据访问错误。
public abstract void setMaxFieldSize(int max) throws SQLException
-
maxFieldSize 限制(以字节为单位)是为任何列值返回的数据的最大数量;它仅适用于 BINARY、VARBINARY、LONGVARBINARY、CHAR、VARCHAR 和 LONGVARCHAR 域。如果超过这个限制,超过的数据将被丢弃。为了最大的可移植性,通常使用大于 256 的值。
-
-
参数:
- max - 新的最大列尺寸限制;零表示无限制 抛出: SQLException
- 如果发生了数据访问错误。
public abstract int getMaxRows() throws SQLException
-
maxRows 限制是 ResultSet 可包含的最大行数。 如果超过限制,超过的行将被丢弃。
-
-
返回值:
- 当前的最大行限制;零表示没有限制 抛出: SQLException
- 如果发生了数据访问错误。
public abstract void setMaxRows(int max) throws SQLException
-
maxRows 限制用来限制 ResultSet 可包含的最大行数。如果超过这个限制,超过的行将被丢弃。
-
-
参数:
- max - 新的最大行限制;零表示无限制 抛出: SQLException
- 如果发生了数据访问错误。
public abstract void setEscapeProcessing(boolean enable) throws SQLException
-
如果不作扫描是打开的(缺省值), 驱动程序在向数据库发送 SQL 语句之前将不作替换。 注意:因为准备好的语句通常在此调用之前进行了语法分析,所以对准备好的语句禁用不作处理是无效的。
-
-
参数:
- enable - true 表示启用; false 表示禁用 抛出: SQLException
- 如果发生了数据访问错误。
public abstract int getQueryTimeout() throws SQLException
-
queryTimeout 限制是驱动程序等待一条语句执行的秒数。 如果超过这个限制,则抛出 SQLException 。
-
-
返回值:
- 以秒记数的当前查询的超时限制;零表示无限制 抛出: SQLException
- 如果发生了数据访问错误。
public abstract void setQueryTimeout(int seconds) throws SQLException
-
queryTimeout 限制是驱动程序等待一条语句执行的秒数。 如果超过这个限制,则抛出 SQLException 。
-
-
参数:
- seconds - 以秒记数的新查询的超时限制;零表示无限制 抛出: SQLException
- 如果发生了数据访问错误。
public abstract void cancel() throws SQLException
-
Cancel 用于一个线程取消另一个线程正在执行的一条语句。
-
-
抛出:
SQLException
- 如果发生了数据访问错误。
public abstract SQLWarning getWarnings() throws SQLException
-
返回由对这条语句的调用报告的第一个警告。语句的执行方法清除它的 SQLWarning 链。后继的语句警告将被链接到这个 SQLWarning 上。
每次执行语句时,警告链被自动清除。
注意: 如果正处理一个 ResultSet,则任何与读 ResultSet 相关的警告将连接到 ResultSet 对象上。
-
-
返回值:
- 第一个 SQLWarning 或 null 抛出: SQLException
- 如果发生了数据访问错误。
public abstract void clearWarnings() throws SQLException
-
此调用完成之后,getWarnings 返回 null, 直到该语句产生了一个新警告为止。
-
-
抛出:
SQLException
- 如果发生了数据访问错误。
public abstract void setCursorName(String name) throws SQLException
-
setCursorname 定义了由后继语句执行方法使用的 SQL 游标名。 该名字可用在 SQL 定位的 update/delete 语句中,来识别由该语句生成的 ResultSet 中的当前行。如果数据库不支持定位的 update/delete, 该方法无用。
注意: 由定义可知,定位的 update/delete 执行必须由不同的语句完成,而不是由生成用于定位的 ResultSet 的语句来执行。而且,游标名在连接中必须是唯一的。
-
-
参数:
- name - 新的游标名。 抛出: SQLException
- 如果发生了数据访问错误。
public abstract boolean execute(String sql) throws SQLException
-
执行一条可能返回多个结果的 SQL 语句。 在某些(非正常)环境下,一个单独的 SQL 语句可能返回多个结果集和/或更新数量。通常,您可忽略该方法,除非您正执行事先知道可能会返回多个结果集的存储过程,或者您动态地执行一个未知的 SQL 字符串。 "execute"、"getMoreResults"、"getResultSet" 和"getUpdateCount" 方法可使得浏览多条结果。 "execute" 方法执行一条 SQL 语句并指示最初的结果形式。可使用 getResultSet 或 getUpdateCount 方法来检索结果,及 getMoreResults 方法来移动到任何后继的结果。
-
-
参数:
- sql - 任何 SQL 语句 返回值:
- 如果下一个结果是 ResultSet ,返回 true;如果它是一个更新数量或没有其它结果,返回 false。 抛出: SQLException
- 如果发生了数据访问错误。 参见:
- getResultSet, getUpdateCount, getMoreResults
public abstract ResultSet getResultSet() throws SQLException
-
getResultSet 返回当前结果作为 ResultSet 。对每个结果只应调用该方法一次。
-
-
返回值:
- 作为 ResultSet 的当前结果;如果没有其它结果返回 null 抛出: SQLException
- 如果发生了数据访问错误。 参见:
- execute
public abstract int getUpdateCount() throws SQLException
-
getUpdateCount 返回当前结果作为一个更新数量;如果结果是一个 ResultSet 或没有其他结果,返回 -1。 对每个结果只应调用该方法一次。
-
-
返回值:
- 作为更新数量的当前结果;如果没有其它结果则返回 null 抛出: SQLException
- 如果发生了数据访问错误。 参见:
- execute
public abstract boolean getMoreResults() throws SQLException
-
getMoreResults 移到语句的下一个结果。 如果结果是一个 ResultSet ,返回 true 。 getMoreResults 也隐式关闭用 getResultSet 获得的当前 ResultSet。如果 (!getMoreResults() && (getUpdateCount() == -1) 则没有下一结果。
-
-
返回值:
- 如果下一个结果是 ResultSet ,返回 true;如果它是一个更新数量或没有其它结果,返回 false。 抛出: SQLException
- 如果发生了数据访问错误。 参见:
- execute
-
public interface ResultSet
ResultSet 提供了通过执行一条语句访问所生成的数据表的功能。按顺序获取表中的行。在一行内它的列值可以以任意顺序访问。
ResultSet 控制一个指向当前数据行的游标。初始,游标定位于第一行之前。用 'next' 方法可把游标移到下一行。
getXXX 方法获取当前行的列值。可通过使用列的索引或名字来获取值。通常使用列索引会更有效。列索引从 1 开始。
最大概率下,每行的 ResultSet 列应按照从左到右的顺序获取,并且每列只读一次。
对 getXXX 方法,JDBC 驱动程序试图把基础数据转换为指定的 Java 类型并返回一个合适的 Java 值。参见关于使用 ResultSet.getXXX 方法从 SQL 类型到 Java 类型进行映射的 JDBC 规范。
输入到 getXXX 方法的列名是大小写敏感的。当使用列名执行一个 getXXX 方法时,如果几个列有同样的名字,则返回第一个匹配的列。当列名用于 SQL 查询时,指定使用列名选项。对在查询中没有明确命名的列,最好使用列编号。如果使用列名,则无法对编程者保证他们实际使用了所想要的列。
ResultSet 由生成它的语句自动关闭、再执行或从多个结果的序列中获取下一个结果。
ResultSet 列的编号、类型和特性由 getMetaData 方法返回的 ResulSetMetaData 对象提供。
方法
public abstract boolean next() throws SQLException
-
ResultSet 初始定位于它的第一行之前;对 next 的第一个调用使得第一行成为当前行;第二个调用使得第二行成为当前行,等等。
如果来自先前行的输入流是打开的,则它被隐含地关闭。当读一个新行时,ResultSet 的警告链被清除。
-
-
返回值:
- 如果当前行有效,返回 true ;如果没有更多的行则返回 false 抛出: SQLException
- 如果发生了数据访问错误。
public abstract void close() throws SQLException
-
在多情况下,在语句自动关闭时立即释放该语句的数据库和 JDBC 资源是需要的;close 方法提供了这种立即释放方法。
注意: ResultSet 由生成它的语句自动关闭、再执行或用于从多个结果的序列中获取下一个结果。 ResultSet 被垃圾箱收集时也自动关闭。
-
-
抛出:
SQLException
- 如果发生了数据访问错误。
public abstract boolean wasNull() throws SQLException
-
列可能有值 SQL NULL ;wasNull 报告是否读的最后一列有这个特殊的值。 注意,您必须先对列调用 getXXX 方法来尽量读它的值并调用 wasNull() 方法来查找值是否为 SQL NULL 。
-
-
返回值:
- 如果读的最后列为 SQL NULL 返回 true 抛出: SQLException
- 如果发生了数据访问错误。
public abstract String getString(int columnIndex) throws SQLException
-
把当前行的列值作为一个 Java String 获取。
-
-
参数:
- columnIndex - 第一个列是 1, 第二个列是 2, ... 返回值:
- 列值;如果值是 SQL NULL, 结果为 null 抛出: SQLException
- 如果发生了数据访问错误。
public abstract boolean getBoolean(int columnIndex) throws SQLException
-
把当前行的列值作为一个 Java boolean 获取。
-
-
参数:
- columnIndex - 第一个列是 1, 第二个列是 2, ... 返回值:
- 列值;如果值是 SQL NULL, 结果为 false 抛出: SQLException
- 如果发生了数据访问错误。
public abstract byte getByte(int columnIndex) throws SQLException
-
把当前行的列值作为一个 Java byte 获取。
-
-
参数:
- columnIndex - 第一个列是 1, 第二个列是 2, ... 返回值:
- 列值;如果值是 SQL NULL, 结果为 0 抛出: SQLException
- 如果发生了数据访问错误。
public abstract short getShort(int columnIndex) throws SQLException
-
把当前行的列值作为一个 Java short 获取。
-
-
参数:
- columnIndex - 第一个列是 1, 第二个列是 2, ... 返回值:
- 列值;如果值是 SQL NULL, 结果为 0 抛出: SQLException
- 如果发生了数据访问错误。
public abstract int getInt(int columnIndex) throws SQLException
-
把当前行的列值作为 Java int 获取。
-
-
参数:
- columnIndex - 第一个列是 1, 第二个列是 2, ... 返回值:
- 列值;如果值是 SQL NULL, 结果为 0 抛出: SQLException
- 如果发生了数据访问错误。
public abstract long getLong(int columnIndex) throws SQLException
-
把当前行的列值作为 Java long 获取。
-
-
参数:
- columnIndex - 第一个列是 1, 第二个列是 2, ... 返回值:
- 列值;如果值是 SQL NULL, 结果为 0 抛出: SQLException
- 如果发生了数据访问错误。
public abstract float getFloat(int columnIndex) throws SQLException
-
把当前行的列值作为 Java float 获取。
-
-
参数:
- columnIndex - 第一个列是 1, 第二个列是 2, ... 返回值:
- 列值;如果值是 SQL NULL, 结果为 0 抛出: SQLException
- 如果发生了数据访问错误。
public abstract double getDouble(int columnIndex) throws SQLException
-
把当前行的列值作为 Java double 获取。
-
-
参数:
- columnIndex - 第一个列是 1, 第二个列是 2, ... 返回值:
- 列值;如果值是 SQL NULL, 结果为 0 抛出: SQLException
- 如果发生了数据访问错误。
public abstract BigDecimal getBigDecimal(int columnIndex, int scale) throws SQLException
-
获取当前行的列值作为 java.lang.BigDecimal 对象。
-
-
参数:
- columnIndex - 第一个列是 1, 第二个列是 2, ...
- scale - 小数点右边的数字数目 返回值:
- 列值;如果值是 SQL NULL, 结果为 null 抛出: SQLException
- 如果发生了数据访问错误。
public abstract byte[] getBytes(int columnIndex) throws SQLException
-
把当前行的列值作为一个 Java byte 数组获取。 字节描述了驱动程序返回的未加工的值。
-
-
参数:
- columnIndex - 第一个列是 1, 第二个列是 2, ... 返回值:
- 列值;如果值是 SQL NULL, 结果为 null 抛出: SQLException
- 如果发生了数据访问错误。
public abstract Date getDate(int columnIndex) throws SQLException
-
把当前行的列值作为一个 java.sql.Date 对象获取。
-
-
参数:
- columnIndex - 第一个列是 1, 第二个列是 2, ... 返回值:
- 列值;如果值是 SQL NULL, 结果为 null 抛出: SQLException
- 如果发生了数据访问错误。
public abstract Time getTime(int columnIndex) throws SQLException
-
把当前行的列值作为 java.sql.Time 对象获取。
-
-
参数:
- columnIndex - 第一个列是 1, 第二个列是 2, ... 返回值:
- 列值;如果值是 SQL NULL, 结果为 null 抛出: SQLException
- 如果发生了数据访问错误。
public abstract Timestamp getTimestamp(int columnIndex) throws SQLException
-
把当前行的列值作为 java.sql.Timestamp 对象获取。
-
-
参数:
- columnIndex - 第一个列是 1, 第二个列是 2, ... 返回值:
- 列值;如果值是 SQL NULL, 结果为 null 抛出: SQLException
- 如果发生了数据访问错误。
public abstract InputStream getAsciiStream(int columnIndex) throws SQLException
-
列值可作为 ASCII 字符流获取,然后成批从流中读出。 该方法特别适合于获取大的 LONGVARCHAR 值。 JDBC 驱动程序将做从数据库格式到 ASCII 的任何必要的转换。
注意: 返回流的所有数据必须在获取任何其它列的值之前先读。下一个对 get 方法的调用隐含地关闭了流。. 而且,一个流可能为 available() 方法返回 0 ,不管数据是否可用。
-
-
参数:
- columnIndex - 第一个列是 1, 第二个列是 2, ... 返回值:
- 把数据库列值作为单字节的 ASCII 字符流释放的 Java 输入流。如果值是 SQL NULL 则结果是 null。 抛出: SQLException
- 如果发生了数据访问错误。
public abstract InputStream getUnicodeStream(int columnIndex) throws SQLException
-
列值可作为一个 Unicode 字符流来获取,然后从流中成批读出。该方法特别适用于获取大的 LONGVARCHAR 值。 JDBC 驱动程序将做从数据库格式到 Unicode 的任何必要的转换。
注意: 返回流的所有数据必须在获取任何其它列的值之前先读。下一个对 get 方法的调用隐含地关闭了流。. 而且,一个流可能为 available() 方法返回 0 ,不管数据是否可用。
-
-
参数:
- columnIndex - 第一个列是 1, 第二个列是 2, ... 返回值:
- 把数据库列值作为一个两字节的 Unicode 字符流释放的 Java 输入流。 如果值是 SQL NULL 则结果是 null。 抛出: SQLException
- 如果发生了数据访问错误。
public abstract InputStream getBinaryStream(int columnIndex) throws SQLException
-
列值可作为一个未解释的字节流来获取,然后从流中成批读出。该方法特别适用于获取大的 LONGVARBINARY 值。
注意: 返回流的所有数据必须在获取任何其它列的值之前先读。下一个对 get 方法的调用隐含地关闭了流。而且,一个流可能为 available() 方法返回 0 ,不管数据是否可用。
-
-
参数:
- columnIndex - 第一个列是 1, 第二个列是 2, ... 返回值:
- 把数据库列值作为一个未解释的字节流释放的 Java 输入流。如果值是 SQL NULL 则结果是 null。 抛出: SQLException
- 如果发生了数据访问错误。
public abstract String getString(String columnName) throws SQLException
-
获取当前行的列值作为一个 Java String 。
-
-
参数:
- columnName - 列的 SQL 名 返回值:
- 列值;如果值是 SQL NULL, 结果为 null 抛出: SQLException
- 如果发生了数据访问错误。
public abstract boolean getBoolean(String columnName) throws SQLException
-
把当前行的列值作为 Java boolean 获取。
-
-
参数:
- columnName - 列的 SQL 名 返回值:
- 列值;如果值是 SQL NULL, 结果为 false 抛出: SQLException
- 如果发生了数据访问错误。
public abstract byte getByte(String columnName) throws SQLException
-
把当前行的列值作为 Java byte 获取。
-
-
参数:
- columnName - 列的 SQL 名 返回值:
- 列值;如果值是 SQL NULL, 结果为 0 抛出: SQLException
- 如果发生了数据访问错误。
public abstract short getShort(String columnName) throws SQLException
-
把当前行的列值作为 Java short 获取。
-
-
参数:
- columnName - 列的 SQL 名 返回值:
- 列值;如果值是 SQL NULL, 结果为 0 抛出: SQLException
- 如果发生了数据访问错误。
public abstract int getInt(String columnName) throws SQLException
-
把当前行的列值作为 Java int 获取。
-
-
参数:
- columnName - 列的 SQL 名 返回值:
- 列值;如果值是 SQL NULL, 结果为 0 抛出: SQLException
- 如果发生了数据访问错误。
public abstract long getLong(String columnName) throws SQLException
-
把当前行的列值作为 Java long 获取。
-
-
参数:
- columnName - 列的 SQL 名 返回值:
- 列值;如果值是 SQL NULL, 结果为 0 抛出: SQLException
- 如果发生了数据访问错误。
public abstract float getFloat(String columnName) throws SQLException
-
把当前行的列值作为 Java float 获取。
-
-
参数:
- columnName - 列的 SQL 名 返回值:
- 列值;如果值是 SQL NULL, 结果为 0 抛出: SQLException
- 如果发生了数据访问错误。
public abstract double getDouble(String columnName) throws SQLException
-
把当前行的列值作为 Java double 获取。
-
-
参数:
- columnName - 列的 SQL 名 返回值:
- 列值;如果值是 SQL NULL, 结果为 0 抛出: SQLException
- 如果发生了数据访问错误。
public abstract BigDecimal getBigDecimal(String columnName, int scale) throws SQLException
-
把当前行的列值作为 java.lang.BigDecimal 对象获取。
-
-
参数:
- columnName - 列的 SQL 名
- scale - 小数点右边的数字数目 返回值:
- 列值;如果值是 SQL NULL, 结果为 null 抛出: SQLException
- 如果发生了数据访问错误。
public abstract byte[] getBytes(String columnName) throws SQLException
-
把当前行的列值作为 Java byte 数组获取。 字节描述了驱动程序返回的未加工的值。
-
-
参数:
- columnName - 列的 SQL 名 返回值:
- 列值;如果值是 SQL NULL, 结果为 null 抛出: SQLException
- 如果发生了数据访问错误。
public abstract Date getDate(String columnName) throws SQLException
-
把当前行的列值作为一个 java.sql.Date 对象获取。
-
-
参数:
- columnName - 列的 SQL 名 返回值:
- 列值;如果值是 SQL NULL, 结果为 null 抛出: SQLException
- 如果发生了数据访问错误。
public abstract Time getTime(String columnName) throws SQLException
-
把当前行的列值作为 java.sql.Time 对象获取。
-
-
参数:
- columnName - 列的 SQL 名 返回值:
- 列值;如果值是 SQL NULL, 结果为 null 抛出: SQLException
- 如果发生了数据访问错误。
public abstract Timestamp getTimestamp(String columnName) throws SQLException
-
把当前行的列值作为 java.sql.Timestamp 对象获取。
-
-
参数:
- columnName - 列的 SQL 名 返回值:
- 列值;如果值是 SQL NULL, 结果为 null 抛出: SQLException
- 如果发生了数据访问错误。
public abstract InputStream getAsciiStream(String columnName) throws SQLException
-
列值可作为 ASCII 字符流获取,然后从流中读入到块中。 该方法特别适合于获取大的 LONGVARCHAR 值。 JDBC 驱动程序将做从数据库格式到 ASCII 的任何必要的转换。
注意: 返回流的所有数据必须在获取任何其它列的值之前先读。下一个对 get 方法的调用隐含地关闭了流。
-
-
参数:
- columnName - 列的 SQL 名 返回值:
- 把数据库列值作为一个一字节的 ASCII 字符流释放的 Java 输入流。如果值是 SQL NULL 则结果是 null。 抛出: SQLException
- 如果发生了数据访问错误。
public abstract InputStream getUnicodeStream(String columnName) throws SQLException
-
列值可作为一个 Unicode 字符流来获取,然后从流中成批读出。 该方法特别适用于获取大的 LONGVARCHAR 值。 JDBC 驱动程序将做从数据库格式到 Unicode 的任何必要的转换。
注意: 返回流的所有数据必须在获取任何其它列的值之前先读。下一个对 get 方法的调用隐含地关闭了流。
-
-
参数:
- columnName - 列的 SQL 名 返回值:
- 把数据库列值作为一个两字节的 Unicode 字符流释放的 Java 输入流。 如果值是 SQL NULL 则结果是 null。 抛出: SQLException
- 如果发生了数据访问错误。
public abstract InputStream getBinaryStream(String columnName) throws SQLException
-
列值可作为一个未解释的字节流来获取,然后从流中成批读出。该方法特别适用于获取大的 LONGVARBINARY 值。
注意: 返回流的所有数据必须在获取任何其它列的值之前先读。下一个对 get 方法的调用隐含地关闭了流。
-
-
参数:
- columnName - 列的 SQL 名 返回值:
- 把数据库列值作为一个未解释字节流释放的 Java 输入流。 如果值是 SQL NULL 则结果是 null。 抛出: SQLException
- 如果发生了数据访问错误。
public abstract SQLWarning getWarnings() throws SQLException
-
返回由在这个 ResultSet 上的调用报告的第一个警告。后继的 ResultSet 警告将被链接到这个 SQLWarning 上。
每次读一个新行时,警告链被自动清除。
注意: 该警告链仅包含了由 ResultSet 方法引起的警告。由语句方法(如读 OUT 参数)引起的任何警告将被链接到语句对象上。
-
-
返回值:
- 第一个 SQLWarning 或 null 抛出: SQLException
- 如果发生了数据访问错误。
public abstract void clearWarnings() throws SQLException
-
此调用完成之后,getWarnings 返回 null 直到为该 ResultSet 报告了一个新的警告为止。
-
-
抛出:
SQLException
- 如果发生了数据访问错误。
public abstract String getCursorName() throws SQLException
-
获取 ResultSet 的 SQL 游标名。
在 SQL 中, 一个结果表可以通过命名的游标来读取。结果的当前行可通过使用引用游标名的已经定位的更新/删除语句来更新或删除。
JDBC 通过提供 ResultSet 使用的 SQL 游标名支持这个 SQL 特征。 ResultSet 的当前行也是这个 SQL 游标的当前行。
注意: 如果不支持定位的更新,则抛出 SQLException
-
-
返回值:
- ResultSet 的 SQL 游标名 抛出: SQLException
- 如果发生了数据访问错误。
public abstract ResultSetMetaData getMetaData() throws SQLException
-
ResultSet 的列编号、类型和特性由 getMetaData 方法提供。
-
-
返回值:
- ResultSet 的列的描述 抛出: SQLException
- 如果发生了数据访问错误。
public abstract Object getObject(int columnIndex) throws SQLException
-
获取当前行的列值作为一个 Java 对象 。
该方法将返回给定的列的值作为一个 Java 对象。Java 对象的类型将是对应于列的 SQL 类型的缺省的 Java 对象类型,依附于 JDBC spec 中指定的映射。
该方法也可用于读特定于数据库的抽象数据类型。
-
-
参数:
- columnIndex - 第一个列是 1, 第二个列是 2, ... 返回值:
- 保持列值的 java.lang.Object 。 抛出: SQLException
- 如果发生了数据访问错误。
public abstract Object getObject(String columnName) throws SQLException
-
把当前行的列值作为 Java 对象获取。
该方法将返回给定的列的值作为一个 Java 对象。Java 对象的类型将是对应于列的 SQL 类型的缺省的 Java 对象类型,依附于 JDBC spec 中指定的映射。
该方法也可用于读特定于数据库的抽象数据类型。
-
-
参数:
- columnName - 列的 SQL 名 返回值:
- 保持列值的 java.lang.Object 。 抛出: SQLException
- 如果发生了数据访问错误。
public abstract int findColumn(String columnName) throws SQLException
-
映射一个 Resultset 列名到 ResultSet 列号。
-
-
参数:
- columnName - 列名 返回值:
- 列索引 抛出: SQLException
- 如果发生了数据访问错误。
-
public interface
PreparedStatement
extends
Statement
一条SQL 语句是预编译的且存放在 PreparedStatement 对象中。该对象可用于有效地多次执行该语句。
注意: 用于设置 IN 参数值的 setXXX 方法必须指定与定义的输入参数的 SQL type 兼容的类型。例如,如果 IN 参数有 SQL type Integer ,则应使用 setInt 方法。
如果需要任意的参数类型转换则 setObject 方法应当与目标 SQL type 一起使用。
方法
public abstract ResultSet executeQuery() throws SQLException
-
执行准备好的 SQL 查询并返回 ResultSet 。
-
-
返回值:
- 包含由查询产生的数据的 ResultSet;永远不会为 null 。 抛出: SQLException
- 如果发生了数据访问错误。
public abstract int executeUpdate() throws SQLException
-
执行一条 SQL INSERT、UPDATE 或 DELETE 语句。 另外,可执行没有返回值的 SQL 语句,如 SQL DDL 语句。
-
-
返回值:
- 为 INSERT、UPDATE 或 DELETE 返回行数,对没有返回值的 SQL 语句则返回 0 抛出: SQLException
- 如果发生了数据访问错误。
public abstract void setNull(int parameterIndex, int sqlType) throws SQLException
-
设置一个参数为 SQL NULL。
注意:必须指定参数的 SQL type 。
-
-
参数:
- parameterIndex - 第一个参数是 1, 第二个是 2, ...
- sqlType - java.sql.Types 定义的 SQL type 代码 抛出: SQLException
- 如果发生了数据访问错误。
public abstract void setBoolean(int parameterIndex, boolean x) throws SQLException
-
设置一个参数为 Java boolean 值。当驱动程序把该值发送到数据库时驱动程序把该值转换为一个 SQL BIT 值。
-
-
参数:
- parameterIndex - 第一个参数是 1, 第二个是 2, ...
- x - 参数值 抛出: SQLException
- 如果发生了数据访问错误。
public abstract void setByte(int parameterIndex, byte x) throws SQLException
-
设置一个参数为 Java byte 值。 当驱动程序把该值发送到数据库时驱动程序把该值转换为一个 SQL TINYINT 值。
-
-
参数:
- parameterIndex - 第一个参数是 1, 第二个是 2, ...
- x - 参数值 抛出: SQLException
- 如果发生了数据访问错误。
public abstract void setShort(int parameterIndex, short x) throws SQLException
-
设置一个参数为 Java short 值。 当驱动程序把该值发送到数据库时驱动程序把该值转换为一个 SQL SMALLINT 值。
-
-
参数:
- parameterIndex - 第一个参数是 1, 第二个是 2, ...
- x - 参数值 抛出: SQLException
- 如果发生了数据访问错误。
public abstract void setInt(int parameterIndex, int x) throws SQLException
-
设置一个参数为 Java int 值。当驱动程序把该值发送到数据库时驱动程序把该值转换为一个 SQL INTEGER 值。
-
-
参数:
- parameterIndex - 第一个参数是 1, 第二个是 2, ...
- x - 参数值 抛出: SQLException
- 如果发生了数据访问错误。
public abstract void setLong(int parameterIndex, long x) throws SQLException
-
设置一个参数为 Java long 值。当驱动程序把该值发送到数据库时驱动程序把该值转换为一个 SQL BIGINT 值。
-
-
参数:
- parameterIndex - 第一个参数是 1, 第二个是 2, ...
- x - 参数值 抛出: SQLException
- 如果发生了数据访问错误。
public abstract void setFloat(int parameterIndex, float x) throws SQLException
-
设置一个参数为 Java float 值。当驱动程序把该值发送到数据库时驱动程序把该值转换为一个 SQL FLOAT 值。
-
-
参数:
- parameterIndex - 第一个参数是 1, 第二个是 2, ...
- x - 参数值 抛出: SQLException
- 如果发生了数据访问错误。
public abstract void setDouble(int parameterIndex, double x) throws SQLException
-
设置一个参数为 Java double 值。当驱动程序把该值发送到数据库时驱动程序把该值转换为一个 SQL DOUBLE 值。
-
-
参数:
- parameterIndex - 第一个参数是 1, 第二个是 2, ...
- x - 参数值 抛出: SQLException
- 如果发生了数据访问错误。
public abstract void setBigDecimal(int parameterIndex, BigDecimal x) throws SQLException
-
设置一个参数为 java.lang.BigDecimal 值。当驱动程序把该值发送到数据库时驱动程序把该值转换为一个 SQL NUMERIC 值。
-
-
参数:
- parameterIndex - 第一个参数是 1, 第二个是 2, ...
- x - 参数值 抛出: SQLException
- 如果发生了数据访问错误。
public abstract void setString(int parameterIndex, String x) throws SQLException
-
设置一个参数为 Java String 值。当驱动程序把该值发送到数据库时驱动程序把该值转换为一个 SQL INTEGER 值。
-
-
参数:
- parameterIndex - 第一个参数是 1, 第二个是 2, ...
- x - 参数值 抛出: SQLException
- 如果发生了数据访问错误。
public abstract void setBytes(int parameterIndex, byte x[]) throws SQLException
-
设置一个参数为 Java 字节数组。当驱动程序把该值发送到数据库时驱动程序把该值转换为一个 SQL INTEGER 值。
-
-
参数:
- parameterIndex - 第一个参数是 1, 第二个是 2, ...
- x - 参数值 抛出: SQLException
- 如果发生了数据访问错误。
public abstract void setDate(int parameterIndex, Date x) throws SQLException
-
设置一个参数为 java.sql.Date 值。当驱动程序把该值发送到数据库时驱动程序把该值转换为一个 SQL DATE 值。
-
-
参数:
- parameterIndex - 第一个参数是 1, 第二个是 2, ...
- x - 参数值 抛出: SQLException
- 如果发生了数据访问错误。
public abstract void setTime(int parameterIndex, Time x) throws SQLException
-
设置一个参数为 java.sql.Date 值。当驱动程序把该值发送到数据库时驱动程序把该值转换为一个 SQL TIME 值。
-
-
参数:
- parameterIndex - 第一个参数是 1, 第二个是 2, ...
- x - 参数值 抛出: SQLException
- 如果发生了数据访问错误。
public abstract void setTimestamp(int parameterIndex, Timestamp x) throws SQLException
-
设置一个参数为 java.sql.Timestamp 值。当驱动程序把该值发送到数据库时驱动程序把该值转换为一个 SQL TIMESTAMP 值。
-
-
参数:
- parameterIndex - 第一个参数是 1, 第二个是 2, ...
- x - 参数值 抛出: SQLException
- 如果发生了数据访问错误。
public abstract void setAsciiStream(int parameterIndex, InputStream x, int length) throws SQLException
-
当一个非常大的 ASCII 值输入到 LONGVARCHAR 参数,通过 java.io.InputStream 发送它更实际些。 JDBC 将按需要从流中读数据直到到达文件结尾。 JDBC 驱动程序将做从 ASCII 到 数据库 char 格式的任何必要的转换。
注意:这个流对象可以是标准的 Java 流对象或您自己的实现了标准接口的子类。
-
-
参数:
- parameterIndex - 第一个参数是 1, 第二个是 2, ...
- x - 包含 ASCII 参数值的 java 输入流
- length - 流中的字节数 抛出: SQLException
- 如果发生了数据访问错误。
public abstract void setUnicodeStream(int parameterIndex, InputStream x, int length) throws SQLException
-
当一个非常大的 UNICODE 值输入到 LONGVARCHAR 参数,通过 java.io.InputStream 发送它更实际些。 JDBC 将按需要从流中读数据直到到达文件结尾。 JDBC 驱动程序将做从 UNICODE 到 数据库 char 格式的任何必要的转换。
注意:这个流对象可以是标准的 Java 流对象或您自己的实现了标准接口的子类。
-
-
参数:
- parameterIndex - 第一个参数是 1, 第二个是 2, ...
- x - 包含 UNCODE 参数值的 java 输入流
- length - 流中的字节数 抛出: SQLException
- 如果发生了数据访问错误。
public abstract void setBinaryStream(int parameterIndex, InputStream x, int length) throws SQLException
-
当一个非常大的 binary 值输入到 LONGVARBINARY 参数,通过 java.io.InputStream 发送它更实际些。 JDBC 将按需要从流中读数据直到到达文件结尾。
注意:这个流对象可以是标准的 Java 流对象或您自己的实现了标准接口的子类。
-
-
参数:
- parameterIndex - 第一个参数是 1, 第二个参数是 2, ...
- x - 包含 binary 参数值的 java 输入流
- length - 流中的字节数 抛出: SQLException
- 如果发生了数据访问错误。
public abstract void clearParameters() throws SQLException
-
通常,参数值保持有效,以便于重复使用一条语句。 设置一个参数值会自动清除它以前的值。但是,在某些情况下,立即释放当前参数值使用的资源是有用的;这可以通过调用 clearParameters 来实现。
-
-
抛出:
SQLException
- 如果发生了数据访问错误。
public abstract void setObject(int parameterIndex, Object x, int targetSqlType, int scale) throws SQLException
-
使用一个对象设置参数的值;对于整数值使用与 java.lang 等价的对象。
给定的 Java 对象将在发送到数据库之前被转换成 targetSqlType。
注意,该方法可用于传递数据库特定的抽象的数据类型。这可通过使用驱动程序特定的 Java 类型和使用 java.sql.types.OTHER 的 targetSqlType 来实现。
-
-
参数:
- parameterIndex - 第一个参数是 1, 第二个参数是 2, ...
- x - 包含输入参数值的对象
- targetSqlType - 发送到数据库的 SQL type (如 java.sql.Types 中所定义的)。小数位数参数可是该类型进一步合理化。
- scale - 对于 java.sql.Types.DECIMAL 或 java.sql.Types.NUMERIC 类型,这是小数点后的数字个数。对所有其它类型该值将被忽略。 抛出: SQLException
- 如果发生了数据访问错误。 参见:
- Types
public abstract void setObject(int parameterIndex, Object x, int targetSqlType) throws SQLException
-
该方法类似以上的 setObject 方法,但是假设小数位数为零。
-
-
抛出:
SQLException
- 如果发生了数据访问错误。
public abstract void setObject(int parameterIndex, Object x) throws SQLException
-
使用一个对象设置参数值;对于整数值值使用与 java.lang 等价的对象。
JDBC 规范指定了从 Java Object 类型到 SQL 类型的标准映射。给定的参数 java 对象将在被发送到数据库之前转换成相应的 SQL type。
注意,该方法可通过使用特定于驱动程序的 Java 类型把特定的抽象数据类型传递给数据库。
-
-
参数:
- parameterIndex - 第一个参数是 1, 第二个参数是 2, ...
- x - 包含输入参数值的对象 抛出: SQLException
- 如果发生了数据访问错误。
public abstract boolean execute() throws SQLException
-
某些准备好的语句返回多个结果集;执行方法处理这些复杂的语句和更简单形式的语句一样,都是通过使用 executeQuery 和 executeUpdate 方法来处理。
-
-
抛出:
SQLException
- 如果发生了数据访问错误。 参见:
- execute
java.sql.DriverManager 类
java.lang.Object | +----java.sql.DriverManager
-
public class
DriverManager
extends
Object
DriverManager 提供管理 JDBC 驱动器设置的基本服务。
作为初始化的一部分,DriverManager 类试图参考 "jdbc.drivers" 系统属性加载驱动器类。 这允许用户为他们的应用程序定制 JDBC 驱动器。 例如,在 /.hotjava/properties 文件中,你可以指定: jdbc.drivers=foo.bah.Driver:wombat.sql.Driver:bad.taste.ourDriver
程序也可以随时显式加载 JDBC 驱动器。 例如,用下列语句加载 my.sql.Driver : Class.forName("my.sql.Driver");
当调用 getConnection 时,DriverManager 试图定位一个适当的驱动器,它是从那些初始化时已选取的的驱动器中选择的,或从那些与当前 Applet或应用程序显式使用相同的类加载器已选取的驱动器中选择的。
方法
public static synchronized Connection getConnection(String url, Properties info) throws SQLException
-
试图与给定的 URL 数据库建立连接。 DriverManager 试图从已注册的 JDBC 驱动器集合中选择一个适当的驱动器。
-
-
参数:
- url - 一个形式为 jdbc: subprotocol: subname 的统一资源定位器数据库。
- info - 作为连接参数的任意字符串标记对/值对列表;通常至少应包括“用户”和“口令”特性 返回值:
- 到 URL 的一个连接 抛出: SQLException
- 如果发生了数据访问错误。
public static synchronized Connection getConnection(String url, String user, String password) throws SQLException
-
试图与给定的 URL 数据库建立连接。 DriverManage 试图从已注册的 JDBC 驱动器集合中选择一个恰当的驱动器。
-
-
参数:
- url - 一个形式为 jdbc: subprotocol: subname 的统一资源定位器数据库。
- user -数据库用户,他执行了成功连接
- password - 用户口令 返回值:
- 到 URL 的一个连接 抛出: SQLException
- 如果发生了数据访问错误。
public static synchronized Connection getConnection(String url) throws SQLException
-
试图与给定的 URL 数据库建立连接。 DriverManager 试图从已注册的 JDBC 驱动器集合中选择一个适当的驱动器。
-
-
参数:
- url - 一个形式为 jdbc: subprotocol: subname 的统一资源定位器数据库。 返回值:
- 到 URL 的一个连接 抛出: SQLException
- 如果发生了数据访问错误。
public static Driver getDriver(String url) throws SQLException
-
试图定位能解释给定 URL 的驱动器。 DriverManager 试图从已注册的 JDBC 驱动器集合中选择一个适当的驱动器。
-
-
参数:
- url - 一个格式为 jdbc: subprotocol: subname 的统一资源定位器数据库。 返回值:
- 能连接到统一资源定位器的驱动器 抛出: SQLException
- 如果发生了数据访问错误。
public static synchronized void registerDriver(Driver driver) throws SQLException
-
新选取的驱动器类必须调用 registerDriver 以告知 DriverManager 。
-
-
参数:
- driver - 新建的 JDBC 驱动器 抛出: SQLException
- 如果发生了数据访问错误。
public static void deregisterDriver(Driver driver) throws SQLException
-
从 DriverManager 列表中删掉一个驱动器。 Applets 只能从它们的类加载器中注销驱动器。
-
-
参数:
- driver - 要删掉的 JDBC 驱动器 抛出: SQLException
- 如果发生了数据访问错误。
public static Enumeration getDrivers()
-
计算当前已选取的所有 JDBC 驱动器数目,这些驱动器是当前调用者正在访问的,并返回该数值。
注释: 通过使用
d.getClass().getName()
能查找驱动程序的类名 -
-
返回值:
- 调用者的类选取器已选取的 JDBC 驱动器列表
public static void setLoginTimeout(int seconds)
-
获得所有驱动器试图在一个数据库记录日志时能够等待的最长的以秒表示的时间。
-
-
参数:
- seconds - 驱动器登录时间限制
public static int getLoginTimeout()
-
获得所有驱动器试图在一个数据库记录日志时能够等待的最长的以秒表示的时间。
-
-
返回值:
- 驱动器登录时间限制
public static void setLogStream(PrintStream out)
-
获取 DriverManager 和所有驱动器使用的用于日志记录的/跟踪的 PrintStream 。
-
-
参数:
- out - 新建用于日志记录/跟踪的 PrintStream ;若禁止,则设为空值。
public static PrintStream getLogStream()
-
获取 DriverManager 和所有驱动器使用的用于日志记录的/跟踪的 PrintStream 。
-
-
返回值:
- 用于日志记录的 PrintStream ;如果不可用,则为空值。
public static void println(String message)
-
打印一个消息到当前 JDBC 日志流
-
-
参数:
- message -日志或跟踪消息