http://www.apihome.cn/api/java/Connection.html
public interface Connectionextends Wrapper
與特定數據庫的連接(會話)。在連接上下文中執行 SQL 語句並返回結果。
Connection
對象的數據庫能夠提供描述其表、所支持的 SQL 語法、存儲過程、此連接功能等等的信息。此信息是使用 getMetaData
方法獲得的。
注:在配置 Connection
時,JDBC 應用程序應該使用適當的 Connection
方法,比如 setAutoCommit
或 setTransactionIsolation
。在有可用的 JDBC 方法時,應用程序不能直接調用 SQL 命令更改連接的配置。默認情況下,Connection
對象處於自動提交模式下,這意味着它在執行每個語句后都會自動提交更改。如果禁用了自動提交模式,那么要提交更改就必須顯式調用 commit
方法;否則無法保存數據庫更改。
使用 JDBC 2.1 核心 API 創建的新 Connection
對象有一個與之關聯的最初為空的類型映射。用戶可以為此類型映射中的 UDT 輸入一個自定義映射關系。在使用 ResultSet.getObject
方法從數據源中獲取 UDT 時,getObject
方法將檢查該連接的類型映射是否有對應該 UDT 的條目。如果有,那么 getObject
方法將該 UDT 映射到所指示的類。如果沒有條目,則使用標准映射關系映射該 UDT。
用戶可以創建一個新的類型映射,該映射是一個 java.util.Map
對象,可在其中創建一個條目,並將該條目傳遞給可以執行自定義映射關系的 java.sql
方法。在這種情況下,該方法將使用給定的類型映射,而不是與連接關聯的映射。
例如,以下代碼片段指定 SQL 類型 ATHLETES
將被映射到 Java 編程語言中的 Athletes
類。該代碼片段為 Connection
對象 con
獲取類型映射,並在其中插入條目,然后使用新的條目將該類型映射設置為連接的類型映射。
java.util.Map map = con.getTypeMap(); map.put("mySchemaName.ATHLETES", Class.forName("Athletes")); con.setTypeMap(map);
- 另請參見:
- DriverManager.getConnection(java.lang.String, java.util.Properties), Statement, ResultSet, DatabaseMetaData
字段摘要 | |
---|---|
static int |
TRANSACTION_NONE 指示事務不受支持的常量。 |
static int |
TRANSACTION_READ_COMMITTED 指示不可以發生臟讀的常量;不可重復讀和虛讀可以發生。 |
static int |
TRANSACTION_READ_UNCOMMITTED 指示可以發生臟讀 (dirty read)、不可重復讀和虛讀 (phantom read) 的常量。 |
static int |
TRANSACTION_REPEATABLE_READ 指示不可以發生臟讀和不可重復讀的常量;虛讀可以發生。 |
static int |
TRANSACTION_SERIALIZABLE 指示不可以發生臟讀、不可重復讀和虛讀的常量。 |
方法摘要 | |
---|---|
void |
clearWarnings() 清除為此 Connection 對象報告的所有警告。 |
void |
close() 立即釋放此 Connection 對象的數據庫和 JDBC 資源,而不是等待它們被自動釋放。 |
void |
commit() 使所有上一次提交/回滾后進行的更改成為持久更改,並釋放此 Connection 對象當前持有的所有數據庫鎖。 |
Array |
createArrayOf(String typeName, Object[] elements) 創建 Array 對象的工廠方法。 |
Blob |
createBlob() 構造實現 Blob 接口的對象。 |
Clob |
createClob() 構造實現 Clob 接口的對象。 |
NClob |
createNClob() 構造實現 NClob 接口的對象。 |
SQLXML |
createSQLXML() 構造實現 SQLXML 接口的對象。 |
Statement |
createStatement() 創建一個 Statement 對象來將 SQL 語句發送到數據庫。 |
Statement |
createStatement(int resultSetType, int resultSetConcurrency) 創建一個 Statement 對象,該對象將生成具有給定類型和並發性的 ResultSet 對象。 |
Statement |
createStatement(int resultSetType, int resultSetConcurrency, int resultSetHoldability) 創建一個 Statement 對象,該對象將生成具有給定類型、並發性和可保存性的 ResultSet 對象。 |
Struct |
createStruct(String typeName, Object[] attributes) 創建 Struct 對象的工廠方法。 |
boolean |
getAutoCommit() 獲取此 Connection 對象的當前自動提交模式。 |
String |
getCatalog() 獲取此 Connection 對象的當前目錄名稱。 |
Properties |
getClientInfo() 返回一個列表,它包含驅動程序支持的每個客戶端信息屬性的名稱和當前值。 |
String |
getClientInfo(String name) 返回通過名稱指定的客戶端信息屬性的值。 |
int |
getHoldability() 獲取使用此 Connection 對象創建的 ResultSet 對象的當前可保存性。 |
DatabaseMetaData |
getMetaData() 獲取一個 DatabaseMetaData 對象,該對象包含關於此 Connection 對象所連接的數據庫的元數據。 |
int |
getTransactionIsolation() 獲取此 Connection 對象的當前事務隔離級別。 |
Map<String,Class<?>> |
getTypeMap() 獲取與此 Connection 對象關聯的 Map 對象。 |
SQLWarning |
getWarnings() 獲取此 Connection 對象上的調用報告的第一個警告。 |
boolean |
isClosed() 查詢此 Connection 對象是否已經被關閉。 |
boolean |
isReadOnly() 查詢此 Connection 對象是否處於只讀模式。 |
boolean |
isValid(int timeout) 如果連接尚未關閉並且仍然有效,則返回 true。 |
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) 創建一個 PreparedStatement 對象來將參數化的 SQL 語句發送到數據庫。 |
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) 將 name 指定的客戶端信息屬性的值設置為 value 指定的值。 |
void |
setHoldability(int holdability) 將使用此 Connection 對象創建的 ResultSet 對象的默認可保存性 (holdability) 更改為給定可保存性。 |
void |
setReadOnly(boolean readOnly) 將此連接設置為只讀模式,作為驅動程序啟用數據庫優化的提示。 |
Savepoint |
setSavepoint() 在當前事務中創建一個未命名的保存點 (savepoint),並返回表示它的新 Savepoint 對象。 |
Savepoint |
setSavepoint(String name) 在當前事務中創建一個具有給定名稱的保存點,並返回表示它的新 Savepoint 對象。 |
void |
setTransactionIsolation(int level) 試圖將此 Connection 對象的事務隔離級別更改為給定的級別。 |
void |
setTypeMap(Map<String,Class<?>> map) 將給定的 TypeMap 對象安裝為此 Connection 對象的類型映射。 |
從接口 java.sql.Wrapper 繼承的方法 |
---|
isWrapperFor, unwrap |
字段詳細信息 |
---|
TRANSACTION_NONE
static final int TRANSACTION_NONE
-
指示事務不受支持的常量。
- 另請參見:
- 常量字段值
TRANSACTION_READ_UNCOMMITTED
static final int TRANSACTION_READ_UNCOMMITTED
-
指示可以發生臟讀 (dirty read)、不可重復讀和虛讀 (phantom read) 的常量。此級別允許被某一事務更改的行在已提交該行所有更改之前被另一個事務讀取(“臟讀”)。如果所有更改都被回滾,則第二個事務將獲取無效的行。
- 另請參見:
- 常量字段值
TRANSACTION_READ_COMMITTED
static final int TRANSACTION_READ_COMMITTED
-
指示不可以發生臟讀的常量;不可重復讀和虛讀可以發生。此級別只禁止事務讀取其中帶有未提交更改的行。
- 另請參見:
- 常量字段值
TRANSACTION_REPEATABLE_READ
static final int TRANSACTION_REPEATABLE_READ
-
指示不可以發生臟讀和不可重復讀的常量;虛讀可以發生。此級別禁止事務讀取帶有未提交更改的行,它還禁止這種情況:一個事務讀取某一行,而另一個事務更改該行,第一個事務重新讀取該行,並在第二次讀取時獲得不同的值(“不可重復讀”)。
- 另請參見:
- 常量字段值
TRANSACTION_SERIALIZABLE
static final int TRANSACTION_SERIALIZABLE
-
指示不可以發生臟讀、不可重復讀和虛讀的常量。此級別包括
TRANSACTION_REPEATABLE_READ
中禁止的事項,同時還禁止出現這種情況:某一事務讀取所有滿足WHERE
條件的行,另一個事務插入一個滿足WHERE
條件的行,第一個事務重新讀取滿足相同條件的行,並在第二次讀取時獲得額外的“虛”行。- 另請參見:
- 常量字段值
方法詳細信息 |
---|
createStatement
Statement createStatement() throws SQLException
-
創建一個
Statement
對象來將 SQL 語句發送到數據庫。不帶參數的 SQL 語句通常使用Statement
對象執行。如果多次執行相同的 SQL 語句,使用PreparedStatement
對象可能更有效。使用返回的
Statement
對象創建的結果集在默認情況下類型為TYPE_FORWARD_ONLY
,並帶有CONCUR_READ_ONLY
並發級別。已創建結果集的可保存性可調用 getHoldability() 確定。 -
-
- 返回:
-
一個新的默認
Statement
對象 - 拋出:
-
SQLException
- 如果發生數據庫訪問錯誤,或者在關閉的連接上調用此方法
prepareStatement
PreparedStatement prepareStatement(String sql) throws SQLException
-
創建一個
PreparedStatement
對象來將參數化的 SQL 語句發送到數據庫。帶有 IN 參數或不帶有 IN 參數的 SQL 語句都可以被預編譯並存儲在
PreparedStatement
對象中。然后可以有效地使用此對象來多次執行該語句。注:為了處理受益於預編譯的帶參數 SQL 語句,此方法進行了優化。如果驅動程序支持預編譯,則
prepareStatement
方法將該語句發送給數據庫進行預編譯。一些驅動程序可能不支持預編譯。在這種情況下,執行PreparedStatement
對象之前無法將語句發送給數據庫。這對用戶沒有直接影響;但它的確會影響哪些方法將拋出某些SQLException
對象。使用返回的
PreparedStatement
對象創建的結果集在默認情況下類型為TYPE_FORWARD_ONLY
,並帶有CONCUR_READ_ONLY
並發級別。已創建結果集的可保存性可調用 getHoldability() 確定。 -
-
- 參數:
-
sql
- 可能包含一個或多個 '?' IN 參數占位符的 SQL 語句 - 返回:
-
包含預編譯 SQL 語句的新的默認
PreparedStatement
對象 - 拋出:
-
SQLException
- 如果發生數據庫訪問錯誤,或者在關閉的連接上調用此方法
prepareCall
CallableStatement prepareCall(String sql) throws SQLException
-
創建一個
CallableStatement
對象來調用數據庫存儲過程。CallableStatement
對象提供了設置其 IN 和 OUT 參數的方法,以及用來執行調用存儲過程的方法。注:為了處理存儲過程調用語句,此方法進行了優化。某些驅動程序可以在調用
prepareCall
方法后將調用語句發送給數據庫;另一些則直到執行了CallableStatement
對象后才可以發送。這對用戶沒有直接影響;但它的確會影響哪些方法將拋出某些 SQLException。使用返回的
CallableStatement
對象創建的結果集在默認情況下類型為TYPE_FORWARD_ONLY
,並帶有CONCUR_READ_ONLY
並發級別。已創建結果集的可保存性可調用 getHoldability() 確定。 -
-
- 參數:
-
sql
- 可以包含一個或多個 '?' 參數占位符的 SQL 語句。通常此語句是使用 JDBC 調用轉義語法指定的。 - 返回:
-
包含預編譯 SQL 語句的新的默認
CallableStatement
對象 - 拋出:
-
SQLException
- 如果發生數據庫訪問錯誤,或者在關閉的連接上調用此方法
nativeSQL
String nativeSQL(String sql) throws SQLException
-
將給定的 SQL 語句轉換成系統本機 SQL 語法。在發送 JDBC SQL 語法之前,驅動程序可以將其轉換成其系統本機 SQL 語法。此方法返回驅動程序將發送的語句的本機形式。
-
-
- 參數:
-
sql
- 可以包含一個或多個 '?' 參數占位符的 SQL 語句 - 返回:
- 此語句的本機形式
- 拋出:
-
SQLException
- 如果發生數據庫訪問錯誤,或者在關閉的連接上調用此方法
setAutoCommit
void setAutoCommit(boolean autoCommit) throws SQLException
-
將此連接的自動提交模式設置為給定狀態。如果連接處於自動提交模式下,則它的所有 SQL 語句將被執行並作為單個事務提交。否則,它的 SQL 語句將聚集到事務中,直到調用
commit
方法或rollback
方法為止。默認情況下,新連接處於自動提交模式。提交發生在語句完成時。語句完成的時間取決於 SQL 語句的類型:
- 對於 DML 語句(比如 Insert、Update 或 Delete)和 DDL 語句,語句在執行完畢時完成。
- 對於 Select 語句,語句在關聯結果集關閉時完成。
- 對於
CallableStatement
對象或者返回多個結果的語句,語句在所有關聯結果集關閉並且已獲得所有更新計數和輸出參數時完成。
注:如果在事務和自動提交模式更改期間調用此方法,則提交該事務。如果調用
setAutoCommit
而自動提交模式未更改,則該調用無操作(no-op)。 -
-
- 參數:
-
autoCommit
- 為true
表示啟用自動提交模式;為false
表示禁用自動提交模式 - 拋出:
-
SQLException
- 如果發生數據庫訪問錯誤,在參與分布式事務的同時調用 setAutoCommit(true),或者在關閉的連接上調用此方法 - 另請參見:
- getAutoCommit()
getAutoCommit
boolean getAutoCommit() throws SQLException
-
獲取此
Connection
對象的當前自動提交模式。 -
-
- 返回:
-
此
Connection
對象的自動提交模式的當前狀態 - 拋出:
-
SQLException
- 如果發生數據庫訪問錯誤,或者在關閉的連接上調用此方法 - 另請參見:
- getAutoCommit(), setAutoCommit(boolean)
commit
void commit() throws SQLException
-
使所有上一次提交/回滾后進行的更改成為持久更改,並釋放此
Connection
對象當前持有的所有數據庫鎖。此方法只應該在已禁用自動提交模式時使用。 -
-
- 拋出:
-
SQLException
- 如果發生數據庫訪問錯誤,在參與分布式事務的同時調用此方法,在關閉的連接上調用此方法,或者此Connection
對象處於自動提交模式 - 另請參見:
- setAutoCommit(boolean)
rollback
void rollback() throws SQLException
-
取消在當前事務中進行的所有更改,並釋放此
Connection
對象當前持有的所有數據庫鎖。此方法只應該在已禁用自動提交模式時使用。 -
-
- 拋出:
-
SQLException
- 如果發生數據庫訪問錯誤,在參與分布式事務的同時調用此方法,在關閉的連接上調用此方法,或者此Connection
對象處於自動提交模式 - 另請參見:
- setAutoCommit(boolean)
close
void close() throws SQLException
-
立即釋放此
Connection
對象的數據庫和 JDBC 資源,而不是等待它們被自動釋放。在已經關閉的
Connection
對象上調用close
方法無操作 (no-op)。建議最好在調用
close
方法之前,應用程序顯式提交或回滾一個活動事務。如果調用close
方法並且有一個活動事務,那么結果將由實現定義。 -
-
- 拋出:
-
SQLException
- 如果發生數據庫訪問錯誤
isClosed
boolean isClosed() throws SQLException
-
查詢此
Connection
對象是否已經被關閉。如果在連接上調用了close
方法或者發生某些嚴重的錯誤,則連接被關閉。只有在調用了Connection.close
方法之后被調用時,此方法才保證返回true
。通常不能調用此方法確定到數據庫的連接是有效的還是無效的。通過捕獲在試圖進行某一操作時可能拋出的異常,典型的客戶端可以確定某一連接是無效的。
-
-
- 返回:
-
如果此
Connection
對象是關閉的,則返回true
;如果它仍然處於打開狀態,則返回false
- 拋出:
-
SQLException
- 如果發生數據庫訪問錯誤
getMetaData
DatabaseMetaData getMetaData() throws SQLException
-
獲取一個
DatabaseMetaData
對象,該對象包含關於此Connection
對象所連接的數據庫的元數據。元數據包括關於數據庫的表、受支持的 SQL 語法、存儲過程、此連接功能等等的信息。 -
-
- 返回:
-
此
Connection
對象的一個DatabaseMetaData
對象 - 拋出:
-
SQLException
- 如果發生數據庫訪問錯誤,或者在關閉的連接上調用此方法
setReadOnly
void setReadOnly(boolean readOnly) throws SQLException
-
將此連接設置為只讀模式,作為驅動程序啟用數據庫優化的提示。
注:此方法不能在事務處理期間調用。
-
-
- 參數:
-
readOnly
- 為true
表示啟用只讀模式;為false
表示禁用只讀模式 - 拋出:
-
SQLException
- 如果發生數據庫訪問錯誤,在關閉的連接上調用此方法,或者在事務處理期間調用此方法
isReadOnly
boolean isReadOnly() throws SQLException
-
查詢此
Connection
對象是否處於只讀模式。 -
-
- 返回:
-
如果此
Connection
對象是只讀的,則返回true
;否則返回false
- 拋出:
-
SQLException
- 如果發生數據庫訪問錯誤,或者在關閉的連接上調用此方法
setCatalog
void setCatalog(String catalog) throws SQLException
-
設置給定目錄名稱,以便選擇要在其中進行工作的此
Connection
對象數據庫的子空間。如果驅動程序不支持這些目錄,那么它將直接忽略此請求。
-
-
- 參數:
-
catalog
- 在其中進行工作的目錄(此Connection
對象的數據庫的子空間)的名稱 - 拋出:
-
SQLException
- 如果發生數據庫訪問錯誤,或者在關閉的連接上調用此方法 - 另請參見:
- getCatalog()
getCatalog
String getCatalog() throws SQLException
-
獲取此
Connection
對象的當前目錄名稱。 -
-
- 返回:
-
當前目錄名稱;如果不存在,則返回
null
- 拋出:
-
SQLException
- 如果發生數據庫訪問錯誤,或者在關閉的連接上調用此方法 - 另請參見:
- setCatalog(java.lang.String)
setTransactionIsolation
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()
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)
getWarnings
SQLWarning getWarnings() throws SQLException
-
獲取此
Connection
對象上的調用報告的第一個警告。如果有多個警告,則后續警告將被鏈接到第一個警告,可以通過對之前獲得的警告調用SQLWarning.getNextWarning
方法獲取。不可以在關閉的連接上調用此方法,這樣做將導致拋出
SQLException
。注:后續警告將被鏈接到此 SQLWarning。
-
-
- 返回:
-
第一個
SQLWarning
對象;如果不存在,則返回null
- 拋出:
-
SQLException
- 如果發生數據庫訪問錯誤,或者在關閉的連接上調用此方法 - 另請參見:
- SQLWarning
clearWarnings
void clearWarnings() throws SQLException
-
清除為此
Connection
對象報告的所有警告。調用此方法后,在為此Connection
對象報告新的警告前,getWarnings
方法將返回null
。 -
-
- 拋出:
-
SQLException
- 如果發生數據庫訪問錯誤,或者在關閉的連接上調用此方法
createStatement
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 驅動程序不支持此方法,或者對於指定的結果集類型和結果集並發性,此方法不受支持。 - 從以下版本開始:
- 1.2
prepareStatement
PreparedStatement prepareStatement(String sql, int resultSetType, int resultSetConcurrency) throws SQLException
-
創建一個
PreparedStatement
對象,該對象將生成具有給定類型和並發性的ResultSet
對象。此方法與上述prepareStatement
方法相同,但它允許重寫默認結果集類型和並發性。已創建結果集的可保存性可調用 getHoldability() 確定。 -
-
- 參數:
-
sql
- 一個String
對象,它是將被發送到數據庫的 SQL 語句,可以包含一個或多個 '?' IN 參數 -
resultSetType
- 結果集類型,它是ResultSet.TYPE_FORWARD_ONLY
、ResultSet.TYPE_SCROLL_INSENSITIVE
或ResultSet.TYPE_SCROLL_SENSITIVE
之一 -
resultSetConcurrency
- 並發類型,它是ResultSet.CONCUR_READ_ONLY
或ResultSet.CONCUR_UPDATABLE
之一 - 返回:
-
包含預編譯的 SQL 語句的新 PreparedStatement 對象,該對象將生成具有給定類型和並發性的
ResultSet
對象 - 拋出:
-
SQLException
- 如果發生數據庫訪問錯誤,在關閉的連接上調用此方法,或者給定參數不是指示類型和並發性的ResultSet
常量 -
SQLFeatureNotSupportedException
- 如果 JDBC 驅動程序不支持此方法,或者對於指定的結果集類型和結果集並發性此方法不受支持。 - 從以下版本開始:
- 1.2
prepareCall
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
之一 - 返回:
-
一個包含預編譯的 SQL 語句的新
CallableStatement
對象,該對象將生成具有給定類型和並發性的ResultSet
對象 - 拋出:
-
SQLException
- 如果發生數據庫訪問錯誤,在關閉的連接上調用此方法,或者給定參數不是指示類型和並發性的ResultSet
常量 -
SQLFeatureNotSupportedException
- 如果 JDBC 驅動程序不支持此方法,或者或者對於指定的結果集類型和結果集並發性此方法不受支持。 - 從以下版本開始:
- 1.2
getTypeMap
Map<String,Class<?>> getTypeMap() throws SQLException
-
獲取與此
Connection
對象關聯的Map
對象。除非應用程序已經添加了一個條目,否則返回的類型映射將為空。 -
-
- 返回:
-
與此
Connection
對象關聯的java.util.Map
對象 - 拋出:
-
SQLException
- 如果發生數據庫訪問錯誤,或者在關閉的連接上調用此方法 -
SQLFeatureNotSupportedException
- 如果 JDBC 驅動程序不支持此方法 - 從以下版本開始:
- 1.2
- 另請參見:
- setTypeMap(java.util.Map>)
setTypeMap
void setTypeMap(Map<String,Class<?>> map) throws SQLException
-
將給定的
TypeMap
對象安裝為此Connection
對象的類型映射。該映射將用於 SQL 結構類型和獨特類型的自定義映射。 -
-
- 參數:
-
map
- 將作為此Connection
對象默認類型映射的替代安裝的java.util.Map
對象 - 拋出:
-
SQLException
- 如果發生數據庫訪問錯誤,在關閉的連接上調用此方法,或者給定參數不是java.util.Map
對象 -
SQLFeatureNotSupportedException
- 如果 JDBC 驅動程序不支持此方法 - 從以下版本開始:
- 1.2
- 另請參見:
- getTypeMap()
setHoldability
void setHoldability(int holdability) throws SQLException
-
將使用此
Connection
對象創建的ResultSet
對象的默認可保存性 (holdability) 更改為給定可保存性。ResultSet
對象的默認可保存性可調用 DatabaseMetaData.getResultSetHoldability() 確定。 -
-
- 參數:
-
holdability
-ResultSet
的可保存性常量,它是ResultSet.HOLD_CURSORS_OVER_COMMIT
或ResultSet.CLOSE_CURSORS_AT_COMMIT
之一 - 拋出:
-
SQLException
- 如果發生數據庫訪問錯誤,在關閉的連接上調用此方法,或者給定參數不是指示可保存性的ResultSet
常量 -
SQLFeatureNotSupportedException
- 如果給定可保存性不受支持 - 從以下版本開始:
- 1.4
- 另請參見:
- getHoldability(), DatabaseMetaData.getResultSetHoldability(), ResultSet
getHoldability
int getHoldability() throws SQLException
-
獲取使用此
Connection
對象創建的ResultSet
對象的當前可保存性。 -
-
- 返回:
-
可保存性,它是
ResultSet.HOLD_CURSORS_OVER_COMMIT
或ResultSet.CLOSE_CURSORS_AT_COMMIT
之一 - 拋出:
-
SQLException
- 如果發生數據庫訪問錯誤,或者在關閉的連接上調用此方法 - 從以下版本開始:
- 1.4
- 另請參見:
- setHoldability(int), DatabaseMetaData.getResultSetHoldability(), ResultSet
setSavepoint
Savepoint setSavepoint() throws SQLException
-
在當前事務中創建一個未命名的保存點 (savepoint),並返回表示它的新
Savepoint
對象。如果在活動事務范圍之外調用 setSavepoint,則將在新創建的保存點上啟動事務。
-
-
- 返回:
-
新的
Savepoint
對象 - 拋出:
-
SQLException
- 如果發生數據庫訪問錯誤,在參與分布式事務的同時調用此方法,在關閉的連接上調用此方法,或者此Connection
對象當前處於自動提交模式 -
SQLFeatureNotSupportedException
- 如果 JDBC 驅動程序不支持此方法 - 從以下版本開始:
- 1.4
- 另請參見:
- Savepoint
setSavepoint
Savepoint setSavepoint(String name) throws SQLException
-
在當前事務中創建一個具有給定名稱的保存點,並返回表示它的新
Savepoint
對象。如果在活動事務范圍之外調用 setSavepoint,則將在新創建的保存點上啟動事務。
-
-
- 參數:
-
name
- 包含保存點名稱的String
- 返回:
-
新的
Savepoint
對象 - 拋出:
-
SQLException
- 如果發生數據庫訪問錯誤,在參與分布式事務的同時調用此方法,在關閉的連接上調用此方法,或者此Connection
對象當前處於自動提交模式下 -
SQLFeatureNotSupportedException
- 如果 JDBC 驅動程序不支持此方法 - 從以下版本開始:
- 1.4
- 另請參見:
- Savepoint
rollback
void rollback(Savepoint savepoint) throws SQLException
-
取消所有設置給定
Savepoint
對象之后進行的更改。此方法只應該在已禁用自動提交時使用。
-
-
- 參數:
-
savepoint
- 要回滾到的Savepoint
對象 - 拋出:
-
SQLException
- 如果發生數據庫訪問錯誤,在參與分布式事務的同時調用此方法,在關閉的連接上調用此方法,Savepoint
對象不再有效,或者此Connection
對象當前處於自動提交模式 -
SQLFeatureNotSupportedException
- 如果 JDBC 驅動程序不支持此方法 - 從以下版本開始:
- 1.4
- 另請參見:
- Savepoint, rollback()
releaseSavepoint
void releaseSavepoint(Savepoint savepoint) throws SQLException
-
從當前事務中移除指定的
Savepoint
和后續Savepoint
對象。在已移除保存點之后,對該保存點的任何引用都會導致拋出SQLException
。 -
-
- 參數:
-
savepoint
- 將移除的Savepoint
對象 - 拋出:
-
SQLException
- 如果發生數據庫訪問錯誤,在關閉的連接上調用此方法,或者給定Savepoint
對象在當前事務中不是一個有效的保存點 -
SQLFeatureNotSupportedException
- 如果 JDBC 驅動程序不支持此方法 - 從以下版本開始:
- 1.4
createStatement
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 驅動程序不支持此方法,或者對於指定結果集類型、結果集可保存性和結果集並發性,此方法不受支持。 - 從以下版本開始:
- 1.4
- 另請參見:
- ResultSet
prepareStatement
PreparedStatement prepareStatement(String sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability) throws SQLException
-
創建一個
PreparedStatement
對象,該對象將生成具有給定類型、並發性和可保存性的ResultSet
對象。此方法與上述
prepareStatement
方法相同,但它允許重寫默認結果集類型、並發性和可保存性。 -
-
- 參數:
-
sql
- 一個String
對象,它是將被發送到數據庫的 SQL 語句,可以包含一個或多個 '?' IN 參數 -
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
- 返回:
-
一個包含預編譯 SQL 語句的新
PreparedStatement
對象,該對象將生成具有給定類型、並發性和可保存性的ResultSet
對象 - 拋出:
-
SQLException
- 如果發生數據庫訪問錯誤,在關閉的連接上調用此方法,或者給定參數不是指示類型、並發性和可保存性的ResultSet
常量 -
SQLFeatureNotSupportedException
- 如果 JDBC 驅動程序不支持此方法,或者對於指定結果集類型、結果集可保存性和結果集並發性,此方法不受支持。 - 從以下版本開始:
- 1.4
- 另請參見:
- ResultSet
prepareCall
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
- 返回:
-
一個包含預編譯 SQL 語句的新
CallableStatement
對象,該對象將生成具有給定類型、並發性和可保存性的ResultSet
對象 - 拋出:
-
SQLException
- 如果發生數據庫訪問錯誤,在關閉的連接上調用此方法,或者給定參數不是指示類型、並發性和可保存性的ResultSet
常量 -
SQLFeatureNotSupportedException
- 如果 JDBC 驅動程序不支持此方法,或者對於指定結果集類型、結果集可保存性和結果集並發性,此方法不受支持。 - 從以下版本開始:
- 1.4
- 另請參見:
- ResultSet
prepareStatement
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
- 可能包含一個或多個 '?' IN 參數占位符的 SQL 語句 -
autoGeneratedKeys
- 指示是否應該返回自動生成的鍵的標志,它是Statement.RETURN_GENERATED_KEYS
或Statement.NO_GENERATED_KEYS
之一 - 返回:
-
一個包含預編譯 SQL 語句的新
PreparedStatement
對象,該對象能夠返回自動生成的鍵 - 拋出:
-
SQLException
- 如果發生數據庫訪問錯誤,在關閉的連接上調用此方法,或者給定參數不是指示是否應該返回自動生成鍵的Statement
常量 -
SQLFeatureNotSupportedException
- 如果 JDBC 驅動程序不支持帶有 Statement.RETURN_GENERATED_KEYS 常量的此方法 - 從以下版本開始:
- 1.4
prepareStatement
PreparedStatement prepareStatement(String sql, int[] columnIndexes) throws SQLException
-
創建一個能返回由給定數組指定的自動生成鍵的默認
PreparedStatement
對象。此數組包含目標表中列的索引,而目標表包含應該可返回的自動生成的鍵。如果 SQL 語句不是INSERT
語句,或者 SQL 語言能夠返回自動生成的鍵(這類語句的列表是特定於供應商的),則驅動程序將忽略該數組。帶 IN 參數或不帶 IN 參數的 SQL 語句都可以被預編輯並存儲在
PreparedStatement
對象中。然后可以使用此對象多次有效地執行該語句。注:為了處理受益於預編譯的帶參數 SQL 語句,此方法進行了優化。如果驅動程序支持預編譯,則
prepareStatement
方法將該語句發送給數據庫進行預編譯。一些驅動程序可能不支持預編譯。在這種情況下,執行PreparedStatement
對象之前無法將語句發送給數據庫。這對用戶沒有直接影響;但它的確會影響哪些方法將拋出某些 SQLException。使用返回的
PreparedStatement
對象創建的結果集在默認情況下類型為TYPE_FORWARD_ONLY
,並帶有CONCUR_READ_ONLY
並發級別。已創建結果集的可保存性可調用 getHoldability() 確定。 -
-
- 參數:
-
sql
- 可能包含一個或多個 '?' IN 參數占位符的 SQL 語句 -
columnIndexes
- 列索引數組,這些索引指示應該從一個或多個插入行中返回的那些列 - 返回:
-
一個包含預編譯語句的新
PreparedStatement
對象,該對象能夠返回由給定列索引數組指定的自動生成鍵 - 拋出:
-
SQLException
- 如果發生數據庫訪問錯誤,或者在關閉的連接上調用此方法 -
SQLFeatureNotSupportedException
- 如果 JDBC 驅動程序不支持此方法 - 從以下版本開始:
- 1.4
prepareStatement
PreparedStatement prepareStatement(String sql, String[] columnNames) throws SQLException
-
創建一個能返回由給定數組指定的自動生成鍵的默認
PreparedStatement
對象。此數組包含目標表中列的名稱,而目標表包含應該返回的自動生成鍵。如果 SQL 語句不是INSERT
語句,或者 SQL 語言能夠返回自動生成的鍵(這類語句的列表是特定於供應商的),則驅動程序將忽略該數組。帶 IN 參數或不帶 IN 參數的 SQL 語句都可以被預編輯並存儲在
PreparedStatement
對象中。然后可以使用此對象多次有效地執行該語句。注:為了處理受益於預編譯的帶參數 SQL 語句,此方法進行了優化。如果驅動程序支持預編譯,則
prepareStatement
方法將該語句發送給數據庫進行預編譯。一些驅動程序可能不支持預編譯。在這種情況下,執行PreparedStatement
對象之前無法將語句發送給數據庫。這對用戶沒有直接影響;但它的確會影響哪些方法將拋出某些 SQLException。使用返回的
PreparedStatement
對象創建的結果集在默認情況下類型為TYPE_FORWARD_ONLY
,並帶有CONCUR_READ_ONLY
並發級別。已創建結果集的可保存性可調用 getHoldability() 確定。 -
-
- 參數:
-
sql
- 可能包含一個或多個 '?' IN 參數占位符的 SQL 語句 -
columnNames
- 列名稱數組,這些名稱指示應該從一個或多個插入行中返回的那些列 - 返回:
-
一個包含預編譯語句的新
PreparedStatement
對象,該對象能夠返回由給定列名稱數組指定的自動生成鍵 - 拋出:
-
SQLException
- 如果發生數據庫訪問錯誤,或者在關閉的連接上調用此方法 -
SQLFeatureNotSupportedException
- 如果 JDBC 驅動程序不支持此方法 - 從以下版本開始:
- 1.4
createClob
Clob createClob() throws SQLException
-
構造實現
Clob
接口的對象。返回的對象最初不包含任何數據。Clob
接口的setAsciiStream
、setCharacterStream
和setString
方法可用來向Clob
添加數據。 -
-
- 返回:
-
實現
Clob
接口的對象 - 拋出:
-
SQLException
- 如果無法構造實現Clob
接口的對象,在關閉的連接上調用此方法,或者發生數據庫訪問錯誤。 -
SQLFeatureNotSupportedException
- 如果 JDBC 驅動程序不支持此數據類型 - 從以下版本開始:
- 1.6
createBlob
Blob createBlob() throws SQLException
-
構造實現
Blob
接口的對象。返回的對象最初不包含任何數據。Blob
接口的setBinaryStream
和setBytes
方法可用來向Blob
添加數據。 -
-
- 返回:
-
實現
Blob
接口的對象 - 拋出:
-
SQLException
- 如果無法構造實現Blob
接口的對象,在關閉的連接上調用此方法,或者發生數據庫訪問錯誤。 -
SQLFeatureNotSupportedException
- 如果 JDBC 驅動程序不支持此數據類型 - 從以下版本開始:
- 1.6
createNClob
NClob createNClob() throws SQLException
-
構造實現
NClob
接口的對象。返回的對象最初不包含任何數據。NClob
接口的setAsciiStream
、setCharacterStream
和setString
方法可用來向NClob
添加數據。 -
-
- 返回:
-
實現
NClob
接口的對象 - 拋出:
-
SQLException
- 如果無法構造實現NClob
接口的對象,在關閉的連接上調用此方法,或者發生數據庫訪問錯誤。 -
SQLFeatureNotSupportedException
- 如果 JDBC 驅動程序不支持此數據類型 - 從以下版本開始:
- 1.6
createSQLXML
SQLXML createSQLXML() throws SQLException
-
構造實現
SQLXML
接口的對象。返回的對象最初不包含任何數據。SQLXML
接口的createXmlStreamWriter
和setString
方法可用來向SQLXML
對象添加數據。 -
-
- 返回:
-
實現
SQLXML
接口的對象 - 拋出:
-
SQLException
- 如果無法構造實現SQLXML
接口的對象,在關閉的連接上調用此方法,或者發生數據庫訪問錯誤。 -
SQLFeatureNotSupportedException
- 如果 JDBC 驅動程序不支持此數據類型 - 從以下版本開始:
- 1.6
isValid
boolean isValid(int timeout) throws SQLException
-
如果連接尚未關閉並且仍然有效,則返回 true。驅動程序將提交一個關於該連接的查詢,或者使用其他某種能確切驗證在調用此方法時連接是否仍然有效的機制。
由驅動程序提交的用來驗證該連接的查詢將在當前事務的上下文中執行。
-
-
- 參數:
-
timeout
- 等待用來驗證連接是否完成的數據庫操作的時間,以秒為單位。如果在操作完成之前超時期滿,則此方法返回 false。0 值表示不對數據庫操作應用超時值。 - 返回:
- 如果連接有效,則返回 true,否則返回 false
- 拋出:
-
SQLException
- 如果為timeout
提供的值小於 0 - 從以下版本開始:
-
1.6
- 另請參見:
- DatabaseMetaData.getClientInfoProperties()
setClientInfo
void setClientInfo(String name, String value) throws SQLClientInfoException
-
將 name 指定的客戶端信息屬性的值設置為 value 指定的值。
應用程序可以使用
DatabaseMetaData.getClientInfoProperties
方法確定驅動程序支持的客戶端信息屬性,以及為每個屬性指定的最大長度。驅動程序存儲數據庫中合適位置上指定的值。例如,在特殊注冊表 (special register)、會話參數 (session parameter) 或者系統表 (system table) 列中。為了提高效率,驅動程序可以將設置數據庫中的值推遲到下一次執行語句或者准備執行語句時。除了在數據庫中的適當位置存儲客戶端信息之外,這些方法不能以任何方式改變連接的行為。為這些方法提供的值只能用於計數、診斷和調試目的。
如果指定的客戶端屬性名稱不被驅動程序所識別,那么該驅動程序將生成一個警告。
如果為此方法指定的值大於該屬性的最大長度,則驅動程序可能截取該值並生成一個警告,或者生成一個
SQLClientInfoException
。如果驅動程序生成一個SQLClientInfoException
,則指定的值不是在連接上設置的。以下是標准的客戶端信息屬性。不過,如果驅動程序支持可由某個標准屬性描述的客戶端信息屬性,則驅動程序無需支持這些屬性,應該使用標准屬性名稱。
- ApplicationName - 當前正在使用連接的應用程序的名稱
- ClientUser - 用戶名,正在使用連接的應用程序將為該用戶執行工作。這與建立連接所使用的用戶名可能不同。
- ClientHostname - 計算機的主機名,正使用連接的應用程序將在該計算機上運行。
-
-
- 參數:
-
name
- 要設置的客戶端信息屬性名稱 -
value
- 要設置為客戶端信息屬性的值。如果該值為 null,則清除指定屬性的當前值。 - 拋出:
-
SQLClientInfoException
- 如果在數據庫服務器上設置客戶端信息值時數據庫服務器返回一個錯誤,或者在關閉的連接上調用此方法 - 從以下版本開始:
- 1.6
setClientInfo
void setClientInfo(Properties properties) throws SQLClientInfoException
-
設置連接的客戶端信息屬性的值。
Properties
對象包含將要設置的客戶端屬性的名稱和值。包含在屬性列表中的客戶端信息屬性集將替換連接上的當前客戶端信息屬性集。如果當前在連接上設置的某個屬性不在屬性列表中,則清除該屬性。指定一個空屬性列表將清除連接上的所有屬性。有關更多信息,請參閱setClientInfo (String, String)
。如果在設置任何客戶端信息屬性時發生錯誤,則拋出
SQLClientInfoException
。SQLClientInfoException
包含指示未設置的客戶端信息屬性的信息。客戶端信息的狀態是未知的,因為某些數據庫不允許自動設置多個客戶端信息屬性。對於這些數據庫,在錯誤發生之前已經設置了一個或多個屬性。 -
-
- 參數:
-
properties
- 要設置的客戶端信息屬性列表 - 拋出:
-
SQLClientInfoException
- 如果在數據庫服務器上設置 clientInfo 值時數據庫服務器返回一個錯誤,或者在關閉的連接上調用此方法 - 從以下版本開始:
-
1.6
- 另請參見:
- setClientInfo(String, String)
getClientInfo
String getClientInfo(String name) throws SQLException
-
返回通過名稱指定的客戶端信息屬性的值。如果指定的客戶端信息屬性尚未設置並且沒有默認值,那么此方法返回 null。如果指定客戶端信息屬性名稱不受驅動程序支持,那么此方法也將返回 null。
應用程序可以使用
DatabaseMetaData.getClientInfoProperties
方法確定受驅動程序支持的客戶端信息屬性。 -
-
- 參數:
-
name
- 要獲取的客戶端信息屬性的名稱 - 返回:
-
指定的客戶端信息屬性的值
- 拋出:
-
SQLException
- 如果在從數據庫中獲取客戶端信息值時數據庫服務器返回一個錯誤,或者在關閉的連接上調用此方法 - 從以下版本開始:
-
1.6
- 另請參見:
- DatabaseMetaData.getClientInfoProperties()
getClientInfo
Properties getClientInfo() throws SQLException
-
返回一個列表,它包含驅動程序支持的每個客戶端信息屬性的名稱和當前值。如果客戶端信息屬性尚未設置並且沒有默認值,那么客戶端信息屬性的值為 null。
-
-
- 返回:
-
一個
Properties
對象,它包含驅動程序支持的每個客戶端信息屬性的名稱和當前值。 - 拋出:
-
SQLException
- 如果在從數據庫中獲取客戶端信息值時數據庫服務器返回一個錯誤,或者在關閉的連接上調用此方法 - 從以下版本開始:
- 1.6
createArrayOf
Array createArrayOf(String typeName, Object[] elements) throws SQLException
-
創建 Array 對象的工廠方法。
注:當使用
createArrayOf
創建映射到基本數據類型的數組對象時,則Array
對象是基本數據類型數組還是Object
數組將由實現來定義。注:JDBC 驅動程序負責將元素
Object
數組映射到 java.sql.Types 中為Object
的給定類定義的默認 JDBC SQL 類型。默認映射關系是在 JDBC 規范的附錄 B 中指定的。如果得到的 JDBC 類型對於給定 typeName 而言不是合適的類型,則拋出SQLException
還是驅動程序支持得到的轉換將由實現來定義。 -
-
- 參數:
-
typeName
- 數組元素將映射到的類型的 SQL 名稱。typeName 是特定於數據庫的名稱,它可能是內置類、用戶定義類型或此數據庫支持的標准 SQL 類型的名稱。該參數是Array.getBaseTypeName
返回的值 -
elements
- 填充所返回對象的元素 - 返回:
- 其元素映射到指定 SQL 類型的 Array 對象
- 拋出:
-
SQLException
- 如果發生數據庫錯誤,JDBC 類型對於 typeName 不是合適類型並且該轉換不受支持,typeName 為 null,或者在關閉的連接上調用此方法 -
SQLFeatureNotSupportedException
- 如果 JDBC 驅動程序不支持此數據類型 - 從以下版本開始:
- 1.6
createStruct
Struct createStruct(String typeName, Object[] attributes) throws SQLException
-
創建 Struct 對象的工廠方法。
-
-
- 參數:
-
typeName
- 此Struct
對象將映射到的 SQL 構造類型的 SQL 類型名稱。typeName 是為此數據庫定義的用戶定義類型的名稱。該參數是Struct.getSQLTypeName
返回的值。 -
attributes
- 填充所返回對象的屬性 - 返回:
- 映射到給定 SQL 類型的 Struct 對象,該對象將使用給定屬性填充
- 拋出:
-
SQLException
- 如果發生數據庫錯誤,typeName 為 null,或者在關閉的連接上調用此方法 -
SQLFeatureNotSupportedException
- 如果 JDBC 驅動程序不支持此數據類型 - 從以下版本開始:
- 1.6