public interface Connection extends Wrapper, AutoCloseable
一个特定数据库的连接(会话)。SQL语句的执行结果是在一个连接上下文返回。
一个Connection
对象的数据库能够提供描述其表的信息,其支持的SQL语法,它的存储过程,该连接的能力,等等。这个信息是与getMetaData
方法得到的。
注:当配置一个Connection
,JDBC应用程序应使用适当的Connection
方法如setAutoCommit
或setTransactionIsolation
。应用程序不应该直接调用SQL命令改变连接的配置时,有一个JDBC方法。默认情况下,Connection
对象是在自动提交模式,这意味着它会自动提交执行各语句后的变化。如果自动提交模式已被禁用,方法commit
必须显式地调用以提交更改;否则,数据库的修改将不会被保存。
使用JDBC 2.1核心API有一个空的类型图与它创造了一个新的Connection
对象。用户可以输入该类型MapUDT自定义映射。当一个UDT是从与方法ResultSet.getObject
数据源检索的方法,getObject
将检查连接的类型图是否有,UDT的入口。如果是这样的话,那getObject
方法将MapUDT的类表示。如果没有进入,UDT将使用标准的映射。
用户可以创建一个新类型的Map,这是一个java.util.Map
对象,它使一个条目,并把它传递给java.sql
方法可以执行自定义映射。在这种情况下,该方法将使用给定的类型映射,而不是与连接关联的类型映射。
例如,下面的代码段指定的SQL类型ATHLETES
将映射到java编程语言中的类Athletes
。代码片段检索对象的Connection
con
类型图,插入,然后设置类型图与新进入的连接的类型图。
java.util.mapMap=欺诈。gettypemap();Map。把(“myschemaname。运动员”类。forName(“运动员”));欺诈。settypemap(图);
Modifier and Type | Field and Description |
---|---|
static int |
TRANSACTION_NONE
不支持事务的常数。
|
static int |
TRANSACTION_READ_COMMITTED
一个常量,指示脏读是防止的;不可重复的读取和幻影读取可以发生。
|
static int |
TRANSACTION_READ_UNCOMMITTED
一个常量,指示脏读,不可重复的读取和幻象读取可以发生。
|
static int |
TRANSACTION_REPEATABLE_READ
一个常量,指示脏读和不可重复的读取是防止;幻影读取可以发生。
|
static int |
TRANSACTION_SERIALIZABLE
防止脏读、不可重复读取和体模读取的常数。
|
Modifier and Type | Method and Description |
---|---|
void |
abort(Executor executor)
终止一个打开的连接。
|
void |
clearWarnings()
清除所有的警告报道的这
Connection 对象。
|
void |
close()
此次发布的
Connection 对象的数据库和JDBC资源,而不是等待他们自动的立即释放。
|
void |
commit()
使自上次提交/回滚永久释放任何数据库锁的
Connection 对象目前持有的所有更改。
|
Array |
createArrayOf(String typeName, Object[] elements)
创建数组对象的工厂方法。
|
Blob |
createBlob()
构建实现
Blob 接口的对象。
|
Clob |
createClob()
构建实现
Clob 接口的对象。
|
NClob |
createNClob()
构建实现
NClob 接口的对象。
|
SQLXML |
createSQLXML()
构建实现
SQLXML 接口的对象。
|
Statement |
createStatement()
创建用于向数据库发送SQL语句的一
Statement 对象。
|
Statement |
createStatement(int resultSetType, int resultSetConcurrency)
创建一个
Statement 对象会产生与给定类型和并发
ResultSet 对象。
|
Statement |
createStatement(int resultSetType, int resultSetConcurrency, int resultSetHoldability)
创建一个对象,会产生
Statement 给定类型的对象,
ResultSet 并发,和保持能力。
|
Struct |
createStruct(String typeName, Object[] attributes)
创建结构对象的工厂方法。
|
boolean |
getAutoCommit()
检索当前自动提交这
Connection 对象模式。
|
String |
getCatalog()
这
Connection 检索对象的当前目录的名字。
|
Properties |
getClientInfo()
返回包含驱动程序支持的每个客户端信息属性的名称和当前值的列表。
|
String |
getClientInfo(String name)
返回由名称指定的客户端信息属性的值。
|
int |
getHoldability()
检索当前保持性
ResultSet 对象创建使用该
Connection 对象。
|
DatabaseMetaData |
getMetaData()
检索
DatabaseMetaData 对象包含元数据的数据库,这
Connection 对象代表一个连接。
|
int |
getNetworkTimeout()
检索驱动程序将等待数据库请求完成的毫秒数。
|
String |
getSchema()
这
Connection 检索对象的当前架构名称。
|
int |
getTransactionIsolation()
这
Connection 检索对象的当前事务隔离级别。
|
Map<String,类<?>> |
getTypeMap()
检索与此
Connection 对象相关的
Map 对象。
|
SQLWarning |
getWarnings()
获取第一个警告,呼吁这
Connection 报道对象。
|
boolean |
isClosed()
这是否
Connection 检索对象已关闭。
|
boolean |
isReadOnly()
这是否
Connection 检索对象是只读模式。
|
boolean |
isValid(int timeout)
如果连接没有被关闭,并且仍然有效,则返回真。
|
String |
nativeSQL(String sql)
将给定的SQL语句到系统的SQL语法。
|
CallableStatement |
prepareCall(String sql)
创建一个
CallableStatement 对象调用数据库存储过程。
|
CallableStatement |
prepareCall(String sql, int resultSetType, int resultSetConcurrency)
创建一个
CallableStatement 对象会产生与给定类型和并发
ResultSet 对象。
|
CallableStatement |
prepareCall(String sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability)
创建一个
CallableStatement 对象会产生与给定类型和并发
ResultSet 对象。
|
PreparedStatement |
prepareStatement(String sql)
创建参数化的SQL语句发送到数据库的
PreparedStatement 对象。
|
PreparedStatement |
prepareStatement(String sql, int autoGeneratedKeys)
创建一个默认的
PreparedStatement 对象有能力获取自动生成的键。
|
PreparedStatement |
prepareStatement(String sql, int[] columnIndexes)
创建一个能够返回自动生成由给定的数组指定键的默认
PreparedStatement 对象。
|
PreparedStatement |
prepareStatement(String sql, int resultSetType, int resultSetConcurrency)
创建一个
PreparedStatement 对象会产生与给定类型和并发
ResultSet 对象。
|
PreparedStatement |
prepareStatement(String sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability)
创建一个对象,会产生
PreparedStatement 给定类型的对象,
ResultSet 并发,和保持能力。
|
PreparedStatement |
prepareStatement(String sql, String[] columnNames)
创建一个能够返回自动生成由给定的数组指定键的默认
PreparedStatement 对象。
|
void |
releaseSavepoint(Savepoint savepoint)
从当前事务中移除指定的
Savepoint 和随后的
Savepoint 对象。
|
void |
rollback()
撤消所有更改在当前事务并释放任何数据库锁的
Connection 对象目前持有。
|
void |
rollback(Savepoint savepoint)
撤消所有的变化后,给
Savepoint 对象集。
|
void |
setAutoCommit(boolean autoCommit)
将此连接的自动提交模式设置为给定的状态。
|
void |
setCatalog(String catalog)
设置给定的目录名称以选择空间,这
Connection 对象的数据库工作。
|
void |
setClientInfo(Properties properties)
设置连接的客户端信息属性的值。
|
void |
setClientInfo(String name, String value)
将由名称指定的客户端信息属性的值设置为值指定的值。
|
void |
setHoldability(int holdability)
使用这种
Connection 对象到给定的保持能力创造了
ResultSet 对象默认的保持能力的变化。
|
void |
setNetworkTimeout(Executor executor, int milliseconds)
设置最大时期
Connection 或物体从
Connection 创建将等待数据库回答任何一个请求。
|
void |
setReadOnly(boolean readOnly)
将此连接放在只读模式中,作为对驱动程序的提示,以启用数据库优化。
|
Savepoint |
setSavepoint()
创建在当前事务中一个未命名的保存点并返回表示它的新
Savepoint 对象。
|
Savepoint |
setSavepoint(String name)
创建一个保存点与给定的名称在当前事务并返回表示它的新
Savepoint 对象。
|
void |
setSchema(String schema)
设置给定的模式名称以访问。
|
void |
setTransactionIsolation(int level)
尝试更改事务隔离级别为
Connection 对象到一个给定的。
|
void |
setTypeMap(Map<String,类<?>> map)
安装了
TypeMap 对象为本
Connection 对象类型图。
|
isWrapperFor, unwrap
static final int TRANSACTION_NONE
static final int TRANSACTION_READ_UNCOMMITTED
static final int TRANSACTION_READ_COMMITTED
static final int TRANSACTION_REPEATABLE_READ
static final int TRANSACTION_SERIALIZABLE
TRANSACTION_REPEATABLE_READ
禁令进一步禁止的情况下,一个事务读取,满足
WHERE
条件的所有行,另一个事务插入一行,满足
WHERE
条件,和第一个事务再次进行相同的条件下,在二读获取额外的“幻影”行。
Statement createStatement() throws SQLException
Statement
对象。不带参数的SQL语句通常用
Statement
对象执行。如果相同的SQL语句被执行多次,它可能是更有效地使用一个
PreparedStatement
对象。
结果集创建使用返回的Statement
对象将默认的类型TYPE_FORWARD_ONLY
和有CONCUR_READ_ONLY
并发级别。对生成的结果集的保持能力可以通过调用getHoldability()
确定。
Statement
对象
SQLException
-如果一个数据库访问错误发生或调用此方法在一个封闭的连接
PreparedStatement prepareStatement(String sql) throws SQLException
PreparedStatement
对象。
一个带或不带参数的SQL语句可以被预编译并存储在一个PreparedStatement
对象。此对象可以被用来有效地执行此语句多次。
注:这方法是参数化的SQL语句,受益于预编译处理优化。如果驱动程序支持预编译的方法,prepareStatement
将报表数据库的预编译。有些司机可能不支持预编译。在这种情况下,语句不能被发送到数据库之前执行PreparedStatement
对象。这对用户没有直接的影响;但是,它确实影响了该方法投入一定的SQLException
对象。
结果集创建使用返回的PreparedStatement
对象将默认的类型TYPE_FORWARD_ONLY
和有CONCUR_READ_ONLY
并发级别。对生成的结果集的保持能力可以通过调用getHoldability()
确定。
sql
-一个SQL语句可能包含一个或多个“?”在参数占位符
PreparedStatement
对象
SQLException
-如果一个数据库访问错误发生或调用此方法在一个封闭的连接
CallableStatement prepareCall(String sql) throws SQLException
CallableStatement
对象调用数据库存储过程。的
CallableStatement
对象提供用于建立和参数的方法,用于执行调用存储过程和方法。
注:这种方法处理存储过程调用语句的优化。有些司机可能会发送调用语句的数据库的方法prepareCall
做;别人可能会等到CallableStatement
对象执行。这对用户没有直接的影响;但是,它确实影响该方法抛出SQLException一定。
结果集创建使用返回的CallableStatement
对象将默认的类型TYPE_FORWARD_ONLY
和有CONCUR_READ_ONLY
并发级别。对生成的结果集的保持能力可以通过调用getHoldability()
确定。
sql
-一个SQL语句可能包含一个或多个“?”参数占位符。通常这个语句使用JDBC调用转义语法规定。
CallableStatement
对象
SQLException
-如果一个数据库访问错误发生或调用此方法在一个封闭的连接
String nativeSQL(String sql) throws SQLException
sql
-一个SQL语句可能包含一个或多个“?”参数占位符
SQLException
-如果一个数据库访问错误发生或调用此方法在一个封闭的连接
void setAutoCommit(boolean autoCommit) throws SQLException
commit
或方法
rollback
终止交易。默认情况下,新的连接是在自动提交模式。
语句在语句完成时发生。在语句结束时的时间取决于SQL语句的类型:
CallableStatement
对象或语句返回多个结果,声明时完成所有相关的结果集被关闭,所有更新计数和输出参数进行检索。如果这是一种注:事务和自动提交模式改变期间,提交事务。如果setAutoCommit
称为自动提交模式不改变,电话是一个空操作。
autoCommit
-
true
启用自动提交模式;
false
禁用它
SQLException
-如果一个数据库访问错误发生,setAutoCommit(真)是在参与分布式事务,或调用此方法在一个封闭的连接
getAutoCommit()
boolean getAutoCommit() throws SQLException
Connection
对象模式。
Connection
对象的自动提交模式的现状
SQLException
-如果一个数据库访问错误发生或调用此方法在一个封闭的连接
setAutoCommit(boolean)
void commit() throws SQLException
Connection
对象目前持有的所有更改。此方法应仅在自动提交模式已禁用时使用。
SQLException
-如果一个数据库访问错误发生时,这种方法是在参与分布式事务的调用,如果调用此方法在一个封闭的连接或这
Connection
对象是在自动提交模式
setAutoCommit(boolean)
void rollback() throws SQLException
Connection
对象目前持有。此方法应仅在自动提交模式已禁用时使用。
SQLException
-如果一个数据库访问错误发生时,这种方法是在参与分布式事务称,这种方法被称为在一个封闭的连接或这
Connection
对象是在自动提交模式
setAutoCommit(boolean)
void close() throws SQLException
Connection
对象的数据库和JDBC资源,而不是等待他们自动的立即释放。
在Connection
对象已关闭调用方法close
是一个空操作。
这是强烈推荐,应用显式提交或回滚活动事务close
方法之前调用。如果close
方法被调用,有一个活跃的交易,结果是实现定义。
close
接口
AutoCloseable
SQLException
- SQLException如果数据库访问错误发生
boolean isClosed() throws SQLException
Connection
检索对象已关闭。一个连接,如果方法
close
一直呼吁或者某些致命错误发生的关。这个方法保证收益
true
只有当它在方法
Connection.close
被称为。
一般不能调用此方法以确定是否对数据库的连接是有效的或无效的。一个典型的客户端可以通过捕获在尝试操作时可能引发的异常来确定连接是无效的。
true
Connection
对象是闭合的;
false
如果它仍然是开放的
SQLException
-如果一个数据库访问错误发生
DatabaseMetaData getMetaData() throws SQLException
DatabaseMetaData
对象包含元数据的数据库,这
Connection
对象代表一个连接。元数据包括关于数据库的表的信息,其支持的SQL语法,它的存储过程,该连接的能力,等等。
Connection
对象
DatabaseMetaData
对象
SQLException
-如果一个数据库访问错误发生或调用此方法在一个封闭的连接
void setReadOnly(boolean readOnly) throws SQLException
注:这种方法不能称为事务期间。
readOnly
-
true
启用只读模式;
false
禁用它
SQLException
-如果一个数据库访问错误发生时,这种方法被称为在一个封闭的连接或这种方法是在调用的事务
boolean isReadOnly() throws SQLException
Connection
检索对象是只读模式。
true
Connection
对象是只读的;
false
否则
SQLException
- SQLException如果数据库访问错误发生或调用此方法在一个封闭的连接
void setCatalog(String catalog) throws SQLException
Connection
对象的数据库工作。
如果驱动程序不支持目录,它会悄悄地忽略这个请求。
打电话setCatalog
对先前创建的或准备Statement
对象无影响。它是实现DBMS定义是否准备操作发生时立即Connection
prepareStatement
或prepareCall
调用方法。为了获得最大的可移植性,setCatalog
前应Statement
创建或准备叫。
catalog
-一个目录的名称(在这
Connection
对象的数据库空间)的工作
SQLException
-如果一个数据库访问错误发生或调用此方法在一个封闭的连接
getCatalog()
String getCatalog() throws SQLException
Connection
检索对象的当前目录的名字。
null
如果没有
SQLException
-如果一个数据库访问错误发生或调用此方法在一个封闭的连接
setCatalog(java.lang.String)
void setTransactionIsolation(int level) throws SQLException
Connection
对象到一个给定的。在接口
Connection
定义常数是可能的事务隔离级别。
注:如果这种方法在一个事务中,结果是实现定义。
level
-下面的一个
Connection
常数:
Connection.TRANSACTION_READ_UNCOMMITTED
,
Connection.TRANSACTION_READ_COMMITTED
,
Connection.TRANSACTION_REPEATABLE_READ
,或
Connection.TRANSACTION_SERIALIZABLE
。(注意,
Connection.TRANSACTION_NONE
不能使用,因为它指定不支持。交易)
SQLException
-如果一个数据库访问错误发生时,这种方法被称为在一个封闭的连接或给定的参数不一的
Connection
常数
DatabaseMetaData.supportsTransactionIsolationLevel(int)
,
getTransactionIsolation()
int getTransactionIsolation() throws SQLException
Connection
检索对象的当前事务隔离级别。
Connection.TRANSACTION_READ_UNCOMMITTED
,
Connection.TRANSACTION_READ_COMMITTED
,
Connection.TRANSACTION_REPEATABLE_READ
,
Connection.TRANSACTION_SERIALIZABLE
,或
Connection.TRANSACTION_NONE
。
SQLException
-如果一个数据库访问错误发生或调用此方法在一个封闭的连接
setTransactionIsolation(int)
SQLWarning getWarnings() throws SQLException
Connection
报道对象。如果有一个以上的警告,随后的警告会被第一个,可以用警告,检索之前调用该方法
SQLWarning.getNextWarning
检索。
这种方法可能不被称为在一个封闭的连接;这样做将导致SQLException
被。
注:随后的警告会被这sqlwarning。
SQLWarning
对象或
null
如果没有
SQLException
-如果一个数据库访问错误发生或调用此方法在一个封闭的连接
SQLWarning
void clearWarnings() throws SQLException
Connection
对象。调用此方法后,该方法
getWarnings
返回
null
直到新的警告是报道的这
Connection
对象。
SQLException
- SQLException如果数据库访问错误发生或调用此方法在一个封闭的连接
Statement createStatement(int resultSetType, int resultSetConcurrency) throws SQLException
Statement
对象会产生与给定类型和并发
ResultSet
对象。这种方法是在
createStatement
法相同,但它允许默认结果集的类型和并发被覆盖。对生成的结果集的保持能力可以通过调用
getHoldability()
确定。
resultSetType
-一个结果集的类型;一个
ResultSet.TYPE_FORWARD_ONLY
,
ResultSet.TYPE_SCROLL_INSENSITIVE
,或
ResultSet.TYPE_SCROLL_SENSITIVE
resultSetConcurrency
-并发类型;一个
ResultSet.CONCUR_READ_ONLY
或
ResultSet.CONCUR_UPDATABLE
Statement
对象会产生与给定类型和并发
ResultSet
对象
SQLException
-如果一个数据库访问错误发生时,这种方法被称为在一个封闭的连接或给定的参数不
ResultSet
常数表示式和并发
SQLFeatureNotSupportedException
如果JDBC驱动程序不支持此方法或这种方法不支持指定结果集的类型和结果集的并发。
PreparedStatement prepareStatement(String sql, int resultSetType, int resultSetConcurrency) throws SQLException
PreparedStatement
对象会产生与给定类型和并发
ResultSet
对象。这种方法是在
prepareStatement
法相同,但它允许默认结果集的类型和并发被覆盖。对生成的结果集的保持能力可以通过调用
getHoldability()
确定。
sql
-
String
对象,SQL语句发送到数据库;可以包含一个或多个“?”在参数
resultSetType
-一个结果集的类型;一个
ResultSet.TYPE_FORWARD_ONLY
,
ResultSet.TYPE_SCROLL_INSENSITIVE
,或
ResultSet.TYPE_SCROLL_SENSITIVE
resultSetConcurrency
-并发类型;一个
ResultSet.CONCUR_READ_ONLY
或
ResultSet.CONCUR_UPDATABLE
ResultSet
对象
SQLException
-如果一个数据库访问错误发生时,这种方法被称为在一个封闭的连接或给定的参数不
ResultSet
常数表示式和并发
SQLFeatureNotSupportedException
如果JDBC驱动程序不支持此方法或这种方法不支持指定结果集的类型和结果集的并发。
CallableStatement prepareCall(String sql, int resultSetType, int resultSetConcurrency) throws SQLException
CallableStatement
对象会产生与给定类型和并发
ResultSet
对象。这种方法是在
prepareCall
法相同,但它允许默认结果集的类型和并发被覆盖。对生成的结果集的保持能力可以通过调用
getHoldability()
确定。
sql
-
String
对象,SQL语句发送到数据库;也许包含以上'吗?”参数
resultSetType
-一个结果集的类型;一个
ResultSet.TYPE_FORWARD_ONLY
,
ResultSet.TYPE_SCROLL_INSENSITIVE
,或
ResultSet.TYPE_SCROLL_SENSITIVE
resultSetConcurrency
-并发类型;一个
ResultSet.CONCUR_READ_ONLY
或
ResultSet.CONCUR_UPDATABLE
CallableStatement
对象包含预编译的SQL语句将产生与给定类型和并发
ResultSet
对象
SQLException
-如果一个数据库访问错误发生时,这种方法被称为在一个封闭的连接或给定的参数不
ResultSet
常数表示式和并发
SQLFeatureNotSupportedException
如果JDBC驱动程序不支持此方法或这种方法不支持指定结果集的类型和结果集的并发。
Map<String,类<?>> getTypeMap() throws SQLException
Connection
对象相关的
Map
对象。除非应用程序添加了一个条目,否则返回的类型将是空的。
你必须调用后返回的setTypeMap
更改getTypeMap
作为JDBC驱动程序可能会创建一个内部副本的Map
对象传递给setTypeMap
的Map
对象:
Map <字符串> ,<?> > gettypemap() myMap中=欺诈;myMap中。把(“myschemaname。运动员,运动员班);CON settypemap(myMap中); 字符串>
Connection
对象相关的
java.util.Map
对象
SQLException
-如果一个数据库访问错误发生或调用此方法在一个封闭的连接
SQLFeatureNotSupportedException
如果JDBC驱动程序不支持此方法
setTypeMap(java.util.Map<java.lang.String, java.lang.Class<?>>)
void setTypeMap(Map<String,类<?>> map) throws SQLException
TypeMap
对象为本
Connection
对象类型图。类型Map将用于SQL结构化类型和不同类型的自定义映射。
你要设置的值为TypeMap
来说setMap
之前作为一个JDBC驱动程序可以创建的TypeMap
内部副本:
MapmyMap中 <字符串,类<?> > =新的HashMap类< 字符串,类<?>
map
-安装在这
Connection
对象的默认类型Map更换
java.util.Map
对象
SQLException
-如果一个数据库访问错误发生时,这种方法被称为在一个封闭的连接或给定的参数不是一个
java.util.Map
对象
SQLFeatureNotSupportedException
如果JDBC驱动程序不支持此方法
getTypeMap()
void setHoldability(int holdability) throws SQLException
Connection
对象到给定的保持能力创造了
ResultSet
对象默认的保持能力的变化。
ResultSet
对象的默认的保持能力可以通过调用
DatabaseMetaData.getResultSetHoldability()
确定。
holdability
-
ResultSet
保持性常数;一
ResultSet.HOLD_CURSORS_OVER_COMMIT
或
ResultSet.CLOSE_CURSORS_AT_COMMIT
SQLException
-如果一个数据库访问时,这种方法被称为在一个封闭的连接,或给定的参数不是一个
ResultSet
常量指示保持能力
SQLFeatureNotSupportedException
-如果给定的保持能力是不支持的
getHoldability()
,
DatabaseMetaData.getResultSetHoldability()
,
ResultSet
int getHoldability() throws SQLException
ResultSet
对象创建使用该
Connection
对象。
ResultSet.HOLD_CURSORS_OVER_COMMIT
或
ResultSet.CLOSE_CURSORS_AT_COMMIT
SQLException
-如果一个数据库访问错误发生或调用此方法在一个封闭的连接
setHoldability(int)
,
DatabaseMetaData.getResultSetHoldability()
,
ResultSet
Savepoint setSavepoint() throws SQLException
Savepoint
对象。
如果setsavepoint是调用一个活动事务外,交易将在这个新创建的保存点开始。
Savepoint
对象
SQLException
-如果一个数据库访问错误发生时,这种方法是在参与分布式事务称,这种方法被称为在一个封闭的连接或这
Connection
对象是目前在自动提交模式
SQLFeatureNotSupportedException
如果JDBC驱动程序不支持此方法
Savepoint
Savepoint setSavepoint(String name) throws SQLException
Savepoint
对象。
如果setsavepoint是调用一个活动事务外,交易将在这个新创建的保存点开始。
name
-
String
含有保存点名称
Savepoint
对象
SQLException
-如果一个数据库访问错误发生时,这种方法是在参与分布式事务称,这种方法被称为在一个封闭的连接或这
Connection
对象是目前在自动提交模式
SQLFeatureNotSupportedException
如果JDBC驱动程序不支持此方法
Savepoint
void rollback(Savepoint savepoint) throws SQLException
Savepoint
对象集。
只有当禁用了自动提交时,才使用这种方法。
savepoint
-滚回
Savepoint
对象
SQLException
-如果一个数据库访问错误发生时,这种方法是在参与分布式事务称,这种方法被称为在一个封闭的连接,
Savepoint
对象不再有效,或这
Connection
对象是目前在自动提交模式
SQLFeatureNotSupportedException
如果JDBC驱动程序不支持此方法
Savepoint
,
rollback()
void releaseSavepoint(Savepoint savepoint) throws SQLException
Savepoint
和随后的
Savepoint
对象。任何参考的保存点之后它已被删除,将导致
SQLException
被。
savepoint
-
Savepoint
对象被删除
SQLException
-如果一个数据库访问错误发生时,这种方法被称为在一个封闭的连接或给定的
Savepoint
对象不在当前事务中有效保存点
SQLFeatureNotSupportedException
如果JDBC驱动程序不支持此方法
Statement createStatement(int resultSetType, int resultSetConcurrency, int resultSetHoldability) throws SQLException
Statement
给定类型的对象,
ResultSet
并发,和保持能力。这种方法是在
createStatement
法相同,但它允许默认结果集的类型,并发,和保持能力被覆盖。
resultSetType
-下面的一个
ResultSet
常数:
ResultSet.TYPE_FORWARD_ONLY
,
ResultSet.TYPE_SCROLL_INSENSITIVE
,或
ResultSet.TYPE_SCROLL_SENSITIVE
resultSetConcurrency
-下面的一个
ResultSet
常数:
ResultSet.CONCUR_READ_ONLY
或
ResultSet.CONCUR_UPDATABLE
resultSetHoldability
-下面的一个
ResultSet
常数:
ResultSet.HOLD_CURSORS_OVER_COMMIT
或
ResultSet.CLOSE_CURSORS_AT_COMMIT
Statement
对象会产生给定类型的对象,
ResultSet
并发,和保持能力
SQLException
-如果一个数据库访问错误发生时,这种方法被称为在一个封闭的连接或给定的参数不
ResultSet
常数表示式,并发,和保持能力
SQLFeatureNotSupportedException
如果JDBC驱动程序不支持此方法或这种方法不是指定结果集类型支持,结果集的保持能力和结果集的并发。
ResultSet
PreparedStatement prepareStatement(String sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability) throws SQLException
PreparedStatement
给定类型的对象,
ResultSet
并发,和保持能力。
该方法为prepareStatement
方法同上,但它允许默认结果集的类型,并发,和保持能力被覆盖。
sql
-
String
对象,SQL语句发送到数据库;可以包含一个或多个“?”在参数
resultSetType
-下面的一个
ResultSet
常数:
ResultSet.TYPE_FORWARD_ONLY
,
ResultSet.TYPE_SCROLL_INSENSITIVE
,或
ResultSet.TYPE_SCROLL_SENSITIVE
resultSetConcurrency
-下面的一个
ResultSet
常数:
ResultSet.CONCUR_READ_ONLY
或
ResultSet.CONCUR_UPDATABLE
resultSetHoldability
-下面的一个
ResultSet
常数:
ResultSet.HOLD_CURSORS_OVER_COMMIT
或
ResultSet.CLOSE_CURSORS_AT_COMMIT
PreparedStatement
对象,包含预编译的SQL语句,这将产生给定类型的对象,
ResultSet
并发,和保持能力
SQLException
-如果一个数据库访问错误发生时,这种方法被称为在一个封闭的连接或给定的参数不
ResultSet
常数表示式,并发,和保持能力
SQLFeatureNotSupportedException
如果JDBC驱动程序不支持此方法或这种方法不是指定结果集类型支持,结果集的保持能力和结果集的并发。
ResultSet
CallableStatement prepareCall(String sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability) throws SQLException
CallableStatement
对象会产生与给定类型和并发
ResultSet
对象。这种方法是在
prepareCall
法相同,但它允许默认结果集的类型,结果集的并发式和保持能力被覆盖。
sql
-
String
对象,SQL语句发送到数据库;也许包含以上'吗?”参数
resultSetType
-下面的一个
ResultSet
常数:
ResultSet.TYPE_FORWARD_ONLY
,
ResultSet.TYPE_SCROLL_INSENSITIVE
,或
ResultSet.TYPE_SCROLL_SENSITIVE
resultSetConcurrency
-下面的一个
ResultSet
常数:
ResultSet.CONCUR_READ_ONLY
或
ResultSet.CONCUR_UPDATABLE
resultSetHoldability
-下面的一个
ResultSet
常数:
ResultSet.HOLD_CURSORS_OVER_COMMIT
或
ResultSet.CLOSE_CURSORS_AT_COMMIT
CallableStatement
对象,包含预编译的SQL语句,这将产生给定类型的对象,
ResultSet
并发,和保持能力
SQLException
-如果一个数据库访问错误发生时,这种方法被称为在一个封闭的连接或给定的参数不
ResultSet
常数表示式,并发,和保持能力
SQLFeatureNotSupportedException
如果JDBC驱动程序不支持此方法或这种方法不是指定结果集类型支持,结果集的保持能力和结果集的并发。
ResultSet
PreparedStatement prepareStatement(String sql, int autoGeneratedKeys) throws SQLException
PreparedStatement
对象有能力获取自动生成的键。给定的常数告诉驱动程序,它是否应该使自动生成的密钥可用于检索。如果SQL语句是不
INSERT
声明此参数被忽略,或SQL语句能够返回自动生成的键(这样的语句列表是特定于供应商的)。
注:这方法是参数化的SQL语句,受益于预编译处理优化。如果驱动程序支持预编译的方法,prepareStatement
将报表数据库的预编译。有些司机可能不支持预编译。在这种情况下,语句不能被发送到数据库之前执行PreparedStatement
对象。这对用户没有直接的影响;但是,它确实影响了该方法抛出SQLException一定。
结果集创建使用返回的PreparedStatement
对象将默认的类型TYPE_FORWARD_ONLY
和有CONCUR_READ_ONLY
并发级别,创建结果集的保持能力可以通过调用getHoldability()
确定。
sql
-一个SQL语句可能包含一个或多个“?”在参数占位符
autoGeneratedKeys
-指示是否自动生成的键应该返回一个或
Statement.NO_GENERATED_KEYS
Statement.RETURN_GENERATED_KEYS
旗;
PreparedStatement
对象,包含预编译的SQL语句,将有能力返回自动生成的键
SQLException
-如果一个数据库访问错误发生时,这种方法被称为在一个封闭的连接或给定的参数不是一个
Statement
常数,指示是否自动生成的键应该归还
SQLFeatureNotSupportedException
如果JDBC驱动程序不与statement.return_generated_keys不断支持这种方法
PreparedStatement prepareStatement(String sql, int[] columnIndexes) throws SQLException
PreparedStatement
对象。该数组包含目标表中的列的索引,该索引包含应提供的自动生成的键。司机如果SQL语句是不
INSERT
声明忽略数组,或一个SQL语句能够返回自动生成的键(这样的语句列表是特定于供应商的)。
带或不带参数的SQL语句可以被预编译并存储在一个PreparedStatement
对象。此对象可以被用来有效地执行此语句多次。
注:这方法是参数化的SQL语句,受益于预编译处理优化。如果驱动程序支持预编译的方法,prepareStatement
将报表数据库的预编译。有些司机可能不支持预编译。在这种情况下,语句不能被发送到数据库之前执行PreparedStatement
对象。这对用户没有直接的影响;但是,它确实影响了该方法抛出SQLException一定。
结果集创建使用返回的PreparedStatement
对象将默认的类型TYPE_FORWARD_ONLY
和有CONCUR_READ_ONLY
并发级别。对生成的结果集的保持能力可以通过调用getHoldability()
确定。
sql
-一个SQL语句可能包含一个或多个“?”在参数占位符
columnIndexes
-柱指标表明应该从插入的行或列的数组返回的行
PreparedStatement
对象,包含预编译的语句,能够将自动生成的列索引数组的指定键
SQLException
-如果一个数据库访问错误发生或调用此方法在一个封闭的连接
SQLFeatureNotSupportedException
如果JDBC驱动程序不支持此方法
PreparedStatement prepareStatement(String sql, String[] columnNames) throws SQLException
PreparedStatement
对象。该数组包含目标表中包含应返回的自动生成的键的列的名称。司机如果SQL语句是不
INSERT
声明忽略数组,或一个SQL语句能够返回自动生成的键(这样的语句列表是特定于供应商的)。
带或不带参数的SQL语句可以被预编译并存储在一个PreparedStatement
对象。此对象可以被用来有效地执行此语句多次。
注:这方法是参数化的SQL语句,受益于预编译处理优化。如果驱动程序支持预编译的方法,prepareStatement
将报表数据库的预编译。有些司机可能不支持预编译。在这种情况下,语句不能被发送到数据库之前执行PreparedStatement
对象。这对用户没有直接的影响;但是,它确实影响了该方法抛出SQLException一定。
结果集创建使用返回的PreparedStatement
对象将默认的类型TYPE_FORWARD_ONLY
和有CONCUR_READ_ONLY
并发级别。对生成的结果集的保持能力可以通过调用getHoldability()
确定。
sql
-一个SQL语句可能包含一个或多个“?”在参数占位符
columnNames
-栏目名称说明应该从插入的行或列的数组返回的行
PreparedStatement
对象,包含预编译的语句,能够将自动生成给定的列名称数组指定键
SQLException
-如果一个数据库访问错误发生或调用此方法在一个封闭的连接
SQLFeatureNotSupportedException
如果JDBC驱动程序不支持此方法
Clob createClob() throws SQLException
Clob
接口的对象。返回的对象最初不包含数据。的
setAsciiStream
,
setCharacterStream
和
setString
方法的
Clob
接口可用于对
Clob
添加数据。
Clob
接口的对象
SQLException
如果实现
Clob
接口无法构造一个对象,这种方法被称为在一个封闭的连接或数据库访问错误发生。
SQLFeatureNotSupportedException
如果JDBC驱动程序不支持这种数据类型
Blob createBlob() throws SQLException
Blob
接口的对象。返回的对象最初不包含数据。该
Blob
接口
setBinaryStream
和
setBytes
方法可用于对
Blob
添加数据。
Blob
接口的对象
SQLException
如果实现
Blob
接口无法构造一个对象,这种方法被称为在一个封闭的连接或数据库访问错误发生。
SQLFeatureNotSupportedException
如果JDBC驱动程序不支持这种数据类型
NClob createNClob() throws SQLException
NClob
接口的对象。返回的对象最初不包含数据。的
setAsciiStream
,
setCharacterStream
和
setString
方法的
NClob
接口可用于对
NClob
添加数据。
NClob
接口的对象
SQLException
如果实现
NClob
接口无法构造一个对象,这种方法被称为在一个封闭的连接或数据库访问错误发生。
SQLFeatureNotSupportedException
如果JDBC驱动程序不支持这种数据类型
SQLXML createSQLXML() throws SQLException
SQLXML
接口的对象。返回的对象最初不包含数据。的
createXmlStreamWriter
对象和接口的
SQLXML
setString
法可以应用到
SQLXML
对象添加数据。
SQLXML
接口的对象
SQLException
如果实现
SQLXML
接口无法构造一个对象,这种方法被称为在一个封闭的连接或数据库访问错误发生。
SQLFeatureNotSupportedException
如果JDBC驱动程序不支持这种数据类型
boolean isValid(int timeout) throws SQLException
由驱动程序提交的查询以验证连接,应在当前事务的上下文中执行。
timeout
-在几秒钟的时间等待用于验证连接完成对数据库的操作。如果超时期限在操作完成之前结束,此方法返回假。值为0表示超时不应用于数据库操作。
SQLException
如果提供
timeout
值小于0
DatabaseMetaData.getClientInfoProperties()
void setClientInfo(String name, String value) throws SQLClientInfoException
应用程序可以使用DatabaseMetaData.getClientInfoProperties
法确定由司机和最大长度,可以为每个属性指定支持的客户端信息的性质。
该驱动程序将指定的值存储在数据库中的适当位置中。例如,在一个特殊的寄存器、会话参数或系统表列。为提高效率,驱动程序可以将在数据库中的值设置为下一次,直到下一次语句被执行或准备。除了在数据库中的适当位置存储客户端信息,这些方法也不会改变连接的行为不管怎样。提供给这些方法的值仅用于会计、诊断和调试目的。
如果所指定的客户信息名称未被驱动程序识别,则该驱动程序将生成一个警告。
如果指定此方法的值大于该属性的司机可以截断值并产生一条警告或产生SQLClientInfoException
最大长度。如果驱动程序生成一个SQLClientInfoException
,指定的值没有被设置在连接。
以下是标准的客户信息属性。驱动程序不需要支持这些属性,但是如果驱动程序支持一个可以通过标准属性来描述的客户信息属性,则应该使用标准的属性名称。
name
-客户信息属性的名称设置
value
-设置客户端信息属性的值。如果值为空,则清除指定属性的当前值。
SQLClientInfoException
-如果数据库服务器返回一个错误而在数据库服务器或设置客户端信息价值,这种方法被称为在一个封闭的连接
void setClientInfo(Properties properties) throws SQLClientInfoException
Properties
对象包含姓名和客户信息的属性值进行设置。属性列表中包含的客户端信息属性的集合取代了连接上的客户端信息属性的当前集合。如果当前在连接上设置的属性不在“属性”列表中,则清除该属性的属性。指定一个空的属性列表将清除连接上的所有属性。更多信息见
setClientInfo (String, String)
。
如果在设置任何客户信息的性质发生了一个错误,一个SQLClientInfoException
抛出。的SQLClientInfoException
包含信息指示客户端信息属性没有设置。客户端的状态信息是未知的因为一些数据库不允许多个客户端信息属性进行设置自动。对于这些数据库,在发生错误之前可能会设置一个或多个属性。
properties
-客户信息属性设置
列表
SQLClientInfoException
-如果数据库服务器返回一个错误而设置的客户信息表的值在数据库服务器或调用此方法在一个封闭的连接
setClientInfo(String, String)
String getClientInfo(String name) throws SQLException
应用程序可以使用DatabaseMetaData.getClientInfoProperties
法确定的驱动程序支持的客户端信息的性质。
name
-客户信息属性的名称来检索
SQLException
-如果数据库服务器返回一个错误值时取客户信息从数据库或调用此方法在一个封闭的连接
DatabaseMetaData.getClientInfoProperties()
Properties getClientInfo() throws SQLException
Properties
包含名称和每个驾驶员的支持客户信息属性的当前值。
SQLException
-如果数据库服务器返回一个错误时,获取客户信息的值从数据库或调用此方法在一个封闭的连接
Array createArrayOf(String typeName, Object[] elements) throws SQLException
注:when createArrayOf
是用来创建一个数组对象映射到原始的数据类型,然后执行定义是否Array
对象是原始数据类型或Object
数组的数组。
注:the JDBC驱动程序负责元素Object
阵列映射到默认的JDBC SQL类型java.sql.types对于给定的类的Object
定义。默认的映射是在JDBC规范附录B的规定。如果得到的JDBC类型不适当的类型为给定的类型则是实现定义是否SQLException
投掷或驱动程序支持的转换。
typeName
型元素的数组映射到SQL的名字。typename是一个特定的数据库名称可以是内置类型名、用户定义类型或一个标准的SQL类型支持的数据库。这是返回的值
Array.getBaseTypeName
elements
-元素填充返回的对象
SQLException
-如果数据库发生错误,JDBC类型不适合typename和不支持转换,typename是null或调用此方法在一个封闭的连接
SQLFeatureNotSupportedException
如果JDBC驱动程序不支持这种数据类型
Struct createStruct(String typeName, Object[] attributes) throws SQLException
typeName
—SQL结构化类型,这
Struct
对象映射到SQL类型名称。typename是用户定义的类型,已经为数据库定义的名称。它返回的值
Struct.getSQLTypeName
。
attributes
-属性,将返回的对象
SQLException
-如果数据库发生错误,typename是null或调用此方法在一个封闭的连接
SQLFeatureNotSupportedException
如果JDBC驱动程序不支持这种数据类型
void setSchema(String schema) throws SQLException
如果驱动程序不支持模式,它会悄悄地忽略这个请求。
打电话setSchema
对先前创建的或准备Statement
对象无影响。它是实现DBMS定义是否准备操作发生时立即Connection
prepareStatement
或prepareCall
调用方法。为了获得最大的可移植性,setSchema
前应Statement
创建或准备叫。
schema
-在这一架构的名称工作
SQLException
-如果一个数据库访问错误发生或调用此方法在一个封闭的连接
getSchema()
String getSchema() throws SQLException
Connection
检索对象的当前架构名称。
null
如果没有
SQLException
-如果一个数据库访问错误发生或调用此方法在一个封闭的连接
setSchema(java.lang.String)
void abort(Executor executor) throws SQLException
abort
结果:
SQLException
。打电话abort
标志着连接关闭并释放任何资源。在一个封闭的连接呼叫abort
是一个空操作。
这可能是流产,通过连接控制的资源释放可以延长一段时间。当abort
方法返回时,连接将被标记为关闭,Executor
被作为参数传递到中止仍然可以执行任务释放资源。
这种方法检查发现有一个SQLPermission
对象之前允许的方法进行。如果一个SecurityManager
存在,checkPermission
方法调用abort
否认,该方法抛出一个java.lang.SecurityException
。
executor
-
Executor
实现将用于
abort
。
SQLException
-如果一个数据库访问错误发生或
executor
是
null
,
SecurityException
-如果存在一个安全管理及其
checkPermission
方法调用
abort
否认
SecurityManager.checkPermission(java.security.Permission)
,
Executor
void setNetworkTimeout(Executor executor, int milliseconds) throws SQLException
Connection
或物体从
Connection
创建将等待数据库回答任何一个请求。如果任何要求还不得而知,等待的方法将返回一个
SQLException
,和
Connection
或物体从
Connection
创建将被标记为关闭。任何后续使用的对象,在
close
例外,
isClosed
或
Connection.isValid
方法,将导致
SQLException
。
注:这种方法是为了解决一个罕见但严重的情况下,网络分区会导致线程发出不间断的JDBC调用挂在socket读取,直到操作系统tcp-timeout(通常为10分钟)。这种方法的abort()
方法提供了一种管理线程的手段自由任何线程的情况下,JDBC连接是管理员线程访问相关。的setNetworkTimeout
方法将盖的情况下,在没有管理员的螺纹,或没有连接。这种方法在它的影响是严重的,应给予足够高的值,所以它不会在任何更多的正常超时触发,如交易超时。
JDBC驱动程序的实现,还可以选择支持对数据库的响应时间限制的setNetworkTimeout
方法,在环境里没有网络是目前。
驱动程序可以在内部实现一些或所有的他们的与多个内部驱动程序数据库传输的调用,它留给驱动程序的实现,以确定是否限制将被应用到响应的原料药调用,或在调用过程中的任何一个单一的请求。
这种方法可以被调用一次以上,如设置JDBC代码区域的限制,和复位退出从默认的这个区域。此方法的调用对已未完成的请求没有任何影响。
的Statement.setQueryTimeout()
超时值是独立的setNetworkTimeout
指定超时值。如果查询超时在网络超时之前终止,那么语句的执行将被取消。如果网络仍然是活动的,结果将是语句和连接仍然可用。但是如果在查询超时或如果由于网络问题声明超时失败的网络超时,连接将被标记为关闭,由连接举行任何资源将被释放,两者的连接和语句将无法使用。
当司机发现setNetworkTimeout
超时时间已过期,JDBC驱动程序是连接关闭和释放由连接举行任何资源。
这种方法检查发现有一个SQLPermission
对象之前允许的方法进行。如果一个SecurityManager
存在,checkPermission
方法调用setNetworkTimeout
否认,该方法抛出一个java.lang.SecurityException
。
executor
-
Executor
实现将用于
setNetworkTimeout
。
milliseconds
在毫秒的时间等待完成对数据库的操作。如果JDBC驱动程序不支持毫秒,JDBC驱动程序将在价值上附近的二。如果在操作完成前暂停期满,一个SQLException会抛出。值为0表示数据库操作没有超时。
SQLException
-如果一个数据库访问错误发生时,这种方法被称为在一个封闭的连接,
executor
是
null
,或指定
seconds
值小于0。
SecurityException
-如果存在一个安全管理及其
checkPermission
方法调用
setNetworkTimeout
否认。
SQLFeatureNotSupportedException
如果JDBC驱动程序不支持此方法
SecurityManager.checkPermission(java.security.Permission)
,
Statement.setQueryTimeout(int)
,
getNetworkTimeout()
,
abort(java.util.concurrent.Executor)
,
Executor
int getNetworkTimeout() throws SQLException
SQLException
抛出。
SQLException
-如果一个数据库访问错误发生或调用此方法在一个封闭的
Connection
SQLFeatureNotSupportedException
如果JDBC驱动程序不支持此方法
setNetworkTimeout(java.util.concurrent.Executor, int)
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.