
# java.sql.Connection
java.sql.Connection是数据库连接接口。
表1对java.sql.Connection接口的支持情况 
| 方法名                                                                                                 | 描述                                                                                                                                                                  | 返回值类型                    | throws                 | 支持JDBC 4 |
|:---|:---|:---|:---|:---|
| abort(Executor executor)                                                                            | 终止打开的连接。                                                                                                                                                            | void                     | SQLException           | Yes      |
| clearWarnings()                                                                                     | 清除为此Connection对象报告的所有警告。                                                                                                                                            | void                     | SQLException           | Yes      |
| close()                                                                                             | 立即释放此Connection对象的数据库和JDBC资源，而不是等待它们自动释放。                                                                                                                           | void                     | SQLException           | Yes      |
| commit()                                                                                            | 使自上次提交/回滚以来所做的所有更改永久化，并释放此Connection对象当前持有的任何数据库锁。仅当禁用了自动提交模式时，才应使用此方法。                                                                                             | void                     | SQLException           | Yes      |
| createArrayOf(String typeName, Object\[\] elements)                                                 | 用于创建Array对象的工厂方法。                                                                                                                                                   | Array                    | SQLException           | Yes      |
| createBlob()                                                                                        | 构造一个实现Blob接口的对象。返回的对象最初不包含数据。Blob接口的setBinaryStream和setBytes方法可以用于向Blob添加数据。                                                                                        | Blob                     | SQLException           | Yes      |
| createClob()                                                                                        | 构造一个实现Clob接口的对象。返回的对象最初不包含数据。Clob接口的setAsciiStream、setCharacterStream和setString方法可以用于向Clob添加数据。                                                                     | Clob                     | SQLException           | Yes      |
| createSQLXML()                                                                                      | 构造一个实现SQLXML接口的对象。返回的对象最初不包含数据。可以使用SQLXML接口的createXmlStreamWriter对象和setString方法向SQLXML对象添加数据。                                                                       | SQLXML                   | SQLException           | Yes      |
| createStatement()                                                                                   | 创建一个用于将SQL语句发送到数据库的语句对象。                                                                                                                                            | Statement                | SQLException           | Yes      |
| createStatement(int resultSetType, int resultSetConcurrency)                                        | 创建一个语句对象，该对象将生成具有给定类型和并发性的ResultSet对象。                                                                                                                              | Statement                | SQLException           | Yes      |
| createStatement(int resultSetType, int resultSetConcurrency, int resultSetHoldability)              | 创建一个语句对象，该对象将生成具有给定类型和并发性的ResultSet对象。                                                                                                                              | Statement                | SQLException           | Yes      |
| getAutoCommit()                                                                                     | 检索此连接对象的当前自动提交模式。                                                                                                                                                   | Boolean                  | SQLException           | Yes      |
| getCatalog()                                                                                        | 检索此Connection对象的当前目录名称。                                                                                                                                             | String                   | SQLException           | Yes      |
| getClientInfo()                                                                                     | 返回一个列表，其中包含驱动程序支持的每个客户端信息属性的名称和当前值。如果客户端信息属性尚未设置且没有默认值，则该属性的值可能为null。                                                                                               | Properties               | SQLException           | Yes      |
| getClientInfo(String name)                                                                          | 返回由name指定的客户端信息属性的值。如果尚未设置指定的客户端信息属性，并且没有默认值，此方法可能会返回null。如果驱动程序不支持指定的客户端信息属性名称，此方法也将返回null。                                                                        | String                   | SQLException           | Yes      |
| getHoldability()                                                                                    | 检索使用此Connection对象创建的ResultSet对象的当前保持性。                                                                                                                              | int                      | SQLException           | Yes      |
| getMetaData()                                                                                       | 检索包含有关此Connection对象表示连接的数据库的元数据的DatabaseMetaData对象。元数据包括有关数据库表、其支持的SQL语法、其存储过程、此连接的功能等的信息。                                                                          | DatabaseMetaData         | SQLException           | Yes      |
| getNetworkTimeout()                                                                                 | 检索驱动程序等待数据库请求完成的毫秒数。如果超过限制，将引发SQLException。                                                                                                                         | int                      | SQLException           | Yes      |
| getSchema()                                                                                         | 检索此Connection对象的当前架构名称。                                                                                                                                             | String                   | SQLException           | Yes      |
| getTransactionIsolation()                                                                           | 检索此Connection对象的当前事务隔离级别。                                                                                                                                           | int                      | SQLException           | Yes      |
| getTypeMap()                                                                                        | 检索与此Connection对象关联的Map对象。除非应用程序添加了条目，否则返回的类型映射将为空。                                                                                                                  | Map\<String,Class\<?\>\> | SQLException           | Yes      |
| getWarnings()                                                                                       | 检索此Connection对象上的调用报告的第一个警告。如果有多个警告，则后续警告将链接到第一个警告，并可以通过对先前检索的警告调用方法SQLWarning.getNextWarning来检索。                                                                   | SQLWarning               | SQLException           | Yes      |
| isClosed()                                                                                          | 检索此Connection对象是否已关闭。如果已对连接调用了方法关闭，或者发生了某些致命错误，则连接将关闭。只有在调用close ction.Close方法之后调用此方法时，才保证返回true。                                                                   | Boolean                  | SQLException           | Yes      |
| isReadOnly()                                                                                        | 检索此Connection对象是否处于只读模式。                                                                                                                                            | Boolean                  | SQLException           | Yes      |
| isValid(int timeout)                                                                                | 如果连接尚未关闭并且仍然有效，则返回true。驱动程序应提交对连接的查询，或使用其他机制，以肯定地验证连接在调用此方法时仍然有效。                                                                                                   | boolean                  | SQLException           | Yes      |
| nativeSQL(String sql)                                                                               | 将给定的SQL语句转换为系统的本机SQL语法。驱动程序可以在发送JDBC SQL语法之前将其转换为其系统的本机SQL语法。此方法返回驱动程序本应发送的语句的本机形式。                                                                                 | String                   | SQLException           | Yes      |
| prepareCall(String sql)                                                                             | 创建用于调用数据库存储过程的CallableStatement对象。CallableStatement对象提供了用于设置其IN和OUT参数的方法，以及用于执行对存储过程的调用的方法。                                                                         | CallableStatement        | SQLException           | Yes      |
| prepareCall(String sql, int resultSetType, int resultSetConcurrency)                                | 创建一个CallableStatement对象，该对象将生成具有给定类型和并发性的ResultSet对象。此方法与上面的准备呼叫方法相同，但它允许覆盖默认的结果集类型和并发。                                                                             | CallableStatement        | SQLException           | Yes      |
| prepareCall(String sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability)      | 创建一个CallableStatement对象，该对象将生成具有给定类型和并发性的ResultSet对象。此方法与上面的准备呼叫方法相同，但它允许覆盖默认的结果集类型、结果集并发类型和保持性。                                                                    | CallableStatement        | SQLException           | Yes      |
| prepareStatement(String sql)                                                                        | 创建一个用于将参数化SQL语句发送到数据库的准备语句对象。                                                                                                                                       | PreparedStatement        | SQLException           | Yes      |
| prepareStatement(String sql, int autoGeneratedKeys)                                                 | 创建一个默认的准备语句对象，该对象能够检索自动生成的键。给定的常量反馈驱动程序，使自动生成的键是否可供检索。如果SQL语句不是INSERT语句，也不是能够返回自动生成键的SQL语句，则将忽略此参数。                                                                 | PreparedStatement        | SQLException           | Yes      |
| prepareStatement(String sql, int\[\] columnIndexes)                                                 | 创建一个默认的准备语句对象，该对象能够返回由给定数组指定的自动生成的键。此数组包含目标表中包含应可用的自动生成键的列的索引。如果SQL语句不是INSERT语句，也不是能够返回自动生成键的SQL语句，驱动程序将忽略数组。                                                       | PreparedStatement        | SQLException           | Yes      |
| prepareStatement(String sql, int resultSetType, int resultSetConcurrency)                           | 创建一个准备语句对象，该对象将生成具有给定类型和并发性的ResultSet对象。此方法与上面的准备语句方法相同，但它允许覆盖默认的结果集类型和并发。                                                                                          | PreparedStatement        | SQLException           | Yes      |
| prepareStatement(String sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability) | 创建一个准备语句对象，该对象将生成具有给定类型、并发性和保持性的ResultSet对象。                                                                                                                        | PreparedStatement        | SQLException           | Yes      |
| prepareStatement(String sql, String\[\] columnNames)                                                | 创建一个默认的准备语句对象，该对象能够返回由给定数组指定的自动生成的键。此数组包含目标表中包含应返回的自动生成键的列的名称。如果SQL语句不是INSERT语句，也不是能够返回自动生成键的SQL语句，驱动程序将忽略数组。                                                       | PreparedStatement        | SQLException           | Yes      |
| releaseSavepoint(Savepoint savepoint)                                                               | 从当前事务中删除指定的Savepoint和后续Savepoint对象。删除保存点后对保存点的任何引用都将导致引发SQLException。                                                                                               | void                     | SQLException           | Yes      |
| rollback()                                                                                          | 撤销在当前事务中所做的所有更改，并释放此Connection对象当前持有的任何数据库锁。仅当禁用自动提交模式时，才应使用此方法。                                                                                                    | void                     | SQLException           | Yes      |
| rollback(Savepoint savepoint)                                                                       | 撤销设置给定Savepoint对象后所做的所有更改。仅当禁用自动提交时，才应使用此方法。                                                                                                                        | void                     | SQLException           | Yes      |
| setAutoCommit(boolean autoCommit)                                                                   | 将此连接的自动提交模式设置为给定状态。如果连接处于自动提交模式，则其所有SQL语句都将作为单个事务执行和提交。否则，其SQL语句将分组为事务，这些事务由对方法提交或方法回滚的调用终止。默认情况下，新连接处于自动提交模式。                                                      | void                     | SQLException           | Yes      |
| setClientInfo(Properties properties)                                                                | 设置连接的客户端信息属性的值。Properties对象包含要设置的客户端信息属性的名称和值。属性列表中包含的客户端信息属性集替换连接上的当前客户端信息属性集。如果当前在连接上设置的属性不在属性列表中，则将清除该属性。                                                        | void                     | SQLClientInfoException | Yes      |
| setClientInfo(String name,String value)                                                             | 将name指定的客户端info属性的值设置为value指定的值。                                                                                                                                    | void                     | SQLClientInfoException | Yes      |
| setHoldability(int holdability)                                                                     | 将使用此Connection对象创建的ResultSet对象的默认保持性更改为给定的保持性。ResultSet对象的默认保持性可以通过调用DatabaseMetaData.getResultSetHoldability来确定。                                                   | void                     | SQLException           | Yes      |
| setNetworkTimeout(Executor executor, int milliseconds)                                              | 设置连接或从连接创建的对象等待数据库回复任何一个请求的最长时间。如果任何请求仍未应答，则等待方法将返回SQLException，并且从Connection创建的Connection或对象将标记为已关闭。除关闭、isCabled或Connection.isValid方法外，对对象的任何后续使用都将导致SQLException。 | void                     | SQLException           | Yes      |
| setReadOnly(boolean readOnly)                                                                       | 将此连接置于只读模式，作为驱动程序的提示，以启用数据库优化。                                                                                                                                      | void                     | SQLException           | Yes      |
| setSavepoint()                                                                                      | 在当前事务中创建一个未命名的保存点，并返回表示它的新保存点对象。                                                                                                                                    | Savepoint                | SQLException           | Yes      |
| setSavepoint(String name)                                                                           | 在当前事务中使用给定名称创建保存点，并返回表示它的新保存点对象。                                                                                                                                    | Savepoint                | SQLException           | Yes      |
| setSchema(String schema)                                                                            | 将给定的架构名称设置为访问。                                                                                                                                                      | void                     | SQLException           | Yes      |
| setTransactionIsolation(int level)                                                                  | 尝试将此Connection对象的事务隔离级别更改为给定的级别。接口Connection中定义的常量是可能的事务隔离级别。                                                                                                       | void                     | SQLException           | Yes      |
| setTypeMap(Map\<String,Class\<?\>\> map)                                                            | 安装给定的TypeMap对象作为此Connection对象的类型映射。类型映射将用于SQL结构化类型和不同类型的自定义映射。                                                                                                      | void                     | SQLException           | Yes      |
   
![](https://support.huaweicloud.com/centralized-devg-v3-gaussdb/public_sys-resources/note_3.0-zh-cn.png)
1. 接口内部默认使用自动提交模式，若通过setAutoCommit(false)关闭自动提交模式，将会导致后面执行的语句受到显式事务包裹，数据库中不支持事务中执行的语句不能在此模式下执行。
2. 不支持全密态数据库使用setClientInfo("send_token", null)传输密钥，使用setClientInfo("clear_token", null)销毁密钥。
3. 创建PrepareStatement类时，在SQL语句中使用returning语句，returning子句不生效。
 
