接口 java.sql.Connection
- public interface Connection
一个 Connection 表示与一个特定数据库的会话。在一个 Connection 的上下文中,执行 SQL 语句并返回结果。
一个 Connection 的数据库能够提供描述以下内容的信息,它的表,它支持 SQL 语法,它的存储过程,该连接的能力等等。该信息可用 getMetaData
方法获得。
注意: 缺省情况下,在执行完每一个语句之后,Connection 自动地提交更改。如果禁止自动提交,必须进行显式的提交,否则将不保存对数据库的更改。
- 参见:
- getConnection, Statement, ResultSet, DatabaseMetaData
变量索引
- TRANSACTION_NONE
- 不支持事务。
- TRANSACTION_READ_COMMITTED
- 防止页面重写读取;但可能发生不可重复的读取和幻象读取。
- TRANSACTION_READ_UNCOMMITTED
- 可能发生页面重写读取,不可重复的读取和幻象读取。
- TRANSACTION_REPEATABLE_READ
- 防止页面重写读取和不可重复的读取,但可能发生幻象读取。
- TRANSACTION_SERIALIZABLE
- 防止页面重写读取,不可重复的读取和幻象读取。
方法索引
- clearWarnings()
- 此调用完成之后,以后的 getWarnings 将返回 null 直到为该
Connection 报告了一个新的警告。
- close()
- 在有些情况下,需要立即释放 Connection 的数据库和 JDBC 资源,而不是等待它们被自动释放;close 方法可以进行立即释放。
- commit()
- 提交从上一次提交 / 回滚操作后所有的更改,使之成为永久的更改,并释放 Connection 当前保持的任何数据库锁。
- createStatement()
- 不带参数的 SQL 语句通常用 Statement 对象执行。
- getAutoCommit()
- 获得当前自动提交状态。
- getCatalog()
- 返回 Connection 的当前分类表名。
- getMetaData()
- 一个 Connection 的数据库能够提供描述以下内容的信息,它的表,它支持 SQL 语法,它的存储过程,该连接的能力等等。
- getTransactionIsolation()
- 获得该 Connection 的当前事务隔离模式。
- getWarnings()
- 返回由该 Connection 的调用报告的第一个警告。
- isClosed()
- 检测一个 Connection 是否被关闭。
- isReadOnly()
- 检测该连接是否在只读状态。
- nativeSQL(String)
- 在发送之前,一个驱动程序把 JDBC sql 语法转换为它的系统本地的
SQL 语法;nativeSQL 将返回驱动程序要发送语句的本地形式。
- prepareCall(String)
- 通过创建一个 CallableStatement 来处理一个 SQL 存储过程调用语句。
- prepareStatement(String)
- 一条带有或不带 IN 参数的 SQL 语句可以被预编译并存放在
PreparedStatement 对象中。
- rollback()
- 回滚撤消从上一次提交 / 回滚操作后的所有更改,并释放 Connection 当前保持的任何数据库锁。
- setAutoCommit(boolean)
- 如果一个连接处于自动提交状态,它所有的 SQL 语句将被执行并作为单个事务提交。
- setCatalog(String)
- 通过设置一个分类表名,可以选择该 Connection 的数据库的一个子空间。
- setReadOnly(boolean)
- 可以把一个连接设置为只读模式,作为启动数据库优化的提示。
- setTransactionIsolation(int)
- 可以用一个 TRANSACTION_* 值调用该方法,改变事务的隔离级别。
变量
TRANSACTION_NONE
public static final int TRANSACTION_NONE
- 不支持事务。
TRANSACTION_READ_UNCOMMITTED
public static final int TRANSACTION_READ_UNCOMMITTED
- 可能发生页面重写读取,不可重复的读取和幻象读取。
TRANSACTION_READ_COMMITTED
public static final int TRANSACTION_READ_COMMITTED
- 防止页面重写读取;可能发生不可重复的读取和幻象读取。
TRANSACTION_REPEATABLE_READ
public static final int TRANSACTION_REPEATABLE_READ
- 防止页面重写读取和不可重复的读取,但可能发生幻象读取。
TRANSACTION_SERIALIZABLE
public static final int TRANSACTION_SERIALIZABLE
- 防止页面重写读取,不可重复的读取和幻象读取。
方法
createStatement
public abstract Statement createStatement() throws SQLException
- 不带参数的 SQL 语句通常用 Statement 对象执行。 如果多次执行同一个 SQL 语句,使用一个 PreparedStatement 就更有效。
- 返回值:
- 一个新建的 Statement 对象
- 抛出:
SQLException
- 如果发生了数据访问错误。
prepareStatement
public abstract PreparedStatement prepareStatement(String sql) throws SQLException
- 一条带有或不带 IN 参数的 SQL 语句可以被预编译并存放在
PreparedStatement 对象中。 该对象可用于有效地多次执行该语句。
注意: 为了处理那些能由预编译得到好处的带参数的 SQL 语句,该方法进行了专门的优化。如果驱动程序支持预编译,prepareStatement 将把该语句发送给数据库进行预编译。有些驱动程序不支持预编译。在这种情况下,在执行 PreparedStatement 语句之前,将不把语句发送到数据库。这对用户没有直接的影响;但是它确实影响某些 SQLExceptions 将由哪个方法抛出 。
- 参数:
- sql - 一个 SQL 语句,它可以包含一个或多个 '?' IN 参数的位置标志符。
- 返回值:
- 一个包含该预编译语句的新建的 PreparedStatement 对象。
- 抛出:
SQLException
- 如果发生了数据访问错误。
prepareCall
public abstract CallableStatement prepareCall(String sql) throws SQLException
- 通过创建一个 CallableStatement 来处理一个 SQL 存储过程调用语句。CallableStatement 提供了设置其 IN 和 OUT 参数的方法和执行它的方法。
注意: 为了处理存储过程调用语句对该方法进行了优化。当 prepareCall 完成时,有些驱动程序可能把调用语句发送给数据库;其它的语句可能等到执行 CallableStatement 时发送。这对用户没有直接的影响;但是它确实影响到哪个方法抛出一定的 SQLExceptions。
- 参数:
- sql - 一个 SQL 语句,它可以包含一个或多个 '?',参数的位置标志符。 通常这个语句是一个 JDBC 功能调用转义字符串。
- 返回值:
- 一个包含该预编译的 SQL 语句的新建的 CallableStatement 对象。
- 抛出:
SQLException
- 如果发生了数据访问错误。
nativeSQL
public abstract String nativeSQL(String sql) throws SQLException
- 在发送之前,一个驱动程序把 JDBC sql 语法转换为它的系统本地的
SQL 语法;nativeSQL 将返回驱动程序要发送语句的本地形式。
- 参数:
- sql - 一个 SQL 语句,它可以包含一个或多个 '?',参数的位置标志符
- 返回值:
- 该语句的本地格式
- 抛出:
SQLException
- 如果发生了数据访问错误。
setAutoCommit
public abstract void setAutoCommit(boolean autoCommit) throws SQLException
- 如果一个连接处于自动提交状态,它所有的 SQL 语句将被执行并作为单个事务被提交。否则,它的 SQL 语句将被分为事务组,由 commit() 或
rollback() 终止。缺省情况下,新建的连接处于自动提交模式。无论下面两种情况哪个先发生都进行提交:语句完成或执行下一条语句。在语句返回一个
ResultSet 的情况下,语句将在检索完 ResultSet 的最后一行或关闭 ResultSet
时完成。在复杂的情况下,单条语句可能返回多个结果,和多个输出参数值。在此只有当已经取出所有的结果和参数值后才进行提交。
- 参数:
- autoCommit - 如果为 true 则启动自动提交;否则禁止自动提交。
- 抛出:
SQLException
- 如果发生了数据访问错误。
getAutoCommit
public abstract boolean getAutoCommit() throws SQLException
- 获得当前自动提交状态。
- 返回值:
- 自动提交模式的当前状态。
- 抛出:
SQLException
- 如果发生了数据访问错误。
- 参见:
- setAutoCommit
commit
public abstract void commit() throws SQLException
- 提交从上一次提交 / 回滚操作后的更改,使之成为永久的更改,并释放 Connection 当前保持的任何数据库锁。 只有当禁止自动提交时可以使用该方法。
- 抛出:
SQLException
- 如果发生了数据访问错误。
- 参见:
- setAutoCommit
rollback
public abstract void rollback() throws SQLException
- 回滚撤消从上一次提交 / 回滚操作后的所有更改,并释放 Connection
当前保持的任何数据库锁。 只有当禁止自动提交时可以使用该方法。
- 抛出:
SQLException
- 如果发生了数据访问错误。
- 参见:
- setAutoCommit
close
public abstract void close() throws SQLException
- 在有些情况下,需要立即释放 Connection 的数据库和 JDBC 资源,而不是等待它们被自动释放;close 方法可以进行立即释放。
注意: 当一个 Connection 由垃圾箱收集时,它被自动关闭。 一定的致命错误也将使 Connection 关闭。
- 抛出:
SQLException
- 如果发生了数据访问错误。
isClosed
public abstract boolean isClosed() throws SQLException
- 检测一个 Connection 是否被关闭。
- 返回值:
- 如果连接被关闭则为 true,如果它仍然打开则为 false。
- 抛出:
SQLException
- 如果发生了数据访问错误。
getMetaData
public abstract DatabaseMetaData getMetaData() throws SQLException
- 一个 Connection 的数据库提供了描述以下内容的信息,它的表,它支持 SQL 语法,它的存储过程,该连接的能力等等。通过一个
DatabaxeMetaData 对象可以使用这些信息。
- 返回值:
- 该 Connection 的一个 DatabaseMetaData 对象。
- 抛出:
SQLException
- 如果发生了数据访问错误。
setReadOnly
public abstract void setReadOnly(boolean readOnly) throws SQLException
- 可以把一个连接设置为只读模式,作为启动数据库优化的提示。
注意: 不能在事务执行的中间调用 setReadOnly。
- 参数:
- readOnly - 如果为 true 则启动只读模式;如果为 false 则禁止只读模式。
- 抛出:
SQLException
- 如果发生了数据访问错误。
isReadOnly
public abstract boolean isReadOnly() throws SQLException
- 检测该连接是否在只读状态。
- 返回值:
- 如果连接是只读的则为 true。
- 抛出:
SQLException
- 如果发生了数据访问错误。
setCatalog
public abstract void setCatalog(String catalog) throws SQLException
- 通过设置一个分类表名,可以选择该 Connection 的数据库的一个子空间。 如果该驱动程序不支持分类表,它将忽略该请求。
- 抛出:
SQLException
- 如果发生了数据访问错误。
getCatalog
public abstract String getCatalog() throws SQLException
- 返回 Connection 的当前分类表名。
- 返回值:
- 当前分类表名或 null。
- 抛出:
SQLException
- 如果发生了数据访问错误。
setTransactionIsolation
public abstract void setTransactionIsolation(int level) throws SQLException
- 可以用一个 TRANSACTION_* 值调用该方法,改变事务的隔离级别。
注意: 不能在事务执行的中间调用 setTransactionIsolation。
- 参数:
- level - 一个具有 TRANSACTION_NONE 异常的 TRANSACTION_* 隔离值;有些数据库不支持其它的值。
- 抛出:
SQLException
- 如果发生了数据访问错误。
- 参见:
- supportsTransactionIsolationLevel
getTransactionIsolation
public abstract int getTransactionIsolation() throws SQLException
- 获得该 Connection 的当前事务隔离模式。
- 返回值:
- 当前 TRANSACTION_* 模式的值。
- 抛出:
SQLException
- 如果发生了数据访问错误。
getWarnings
public abstract SQLWarning getWarnings() throws SQLException
- 返回在该 Connection 上的调用报告的第一个警告。
注意: 后继的警告将被链接到这个 SQLWarning 上。
- 返回值:
- 第一个 SQLWarning 或 null
- 抛出:
SQLException
- 如果发生了数据访问错误。
clearWarnings
public abstract void clearWarnings() throws SQLException
- 此调用完成之后,以后的 getWarnings 将返回 null,直到为该
Connection 报告了一个新的警告。
- 抛出:
SQLException
- 如果发生了数据访问错误。