|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
public interface Connection
與特定資料庫的連接(Session)。在連接上下文中執行 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 |
欄位詳細資訊 |
---|
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 語句發送到資料庫。不帶參數的 SQL 語句通常使用 Statement
物件執行。如果多次執行相同的 SQL 語句,使用 PreparedStatement
物件可能更有效。
使用返回的 Statement
物件創建的結果集在預設情況下型別為 TYPE_FORWARD_ONLY
,並帶有 CONCUR_READ_ONLY
共時級別。已創建結果集的可保存性可調用 getHoldability()
確定。
Statement
物件
SQLException
- 如果發生資料庫存取錯誤,或者在關閉的連接上調用此方法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 語句
PreparedStatement
物件
SQLException
- 如果發生資料庫存取錯誤,或者在關閉的連接上調用此方法CallableStatement prepareCall(String sql) throws SQLException
CallableStatement
物件來調用資料庫預儲程序。CallableStatement
物件提供了設置其 IN 和 OUT 參數的方法,以及用來執行調用預儲程序的方法。
註:為了處理預儲程序調用語句,此方法進行了優化。某些驅動程序可以在調用 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
而自動提交網要未更改,則該調用無操作(no-op)。
autoCommit
- 為 true
表示啟用自動提交網要;為 false
表示禁用自動提交網要
SQLException
- 如果發生資料庫存取錯誤,在參與分佈式事務的同時調用 setAutoCommit(true),或者在關閉的連接上調用此方法getAutoCommit()
boolean getAutoCommit() throws SQLException
Connection
物件的當前自動提交網要。
Connection
物件的自動提交網要的當前狀態
SQLException
- 如果發生資料庫存取錯誤,或者在關閉的連接上調用此方法getAutoCommit()
,
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
方法無操作 (no-op)。
建議最好在調用 close
方法之前,應用程序顯式提交或回滾一個活動事務。如果調用 close
方法並且有一個活動事務,那麼結果將由實作定義。
SQLException
- 如果發生資料庫存取錯誤boolean isClosed() throws SQLException
Connection
物件是否已經被關閉。如果在連接上調用了 close
方法或者發生某些嚴重的錯誤,則連接被關閉。只有在調用了 Connection.close
方法之後被調用時,此方法才保證返回 true
。
通常不能調用此方法確定到資料庫的連接是有效的還是無效的。通過捕獲在試圖進行某一操作時可能拋出的異常,典型的客戶端可以確定某一連接是無效的。
Connection
物件是關閉的,則返回 true
;如果它仍然處於打開狀態,則返回 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
物件是否處於只讀網要。
Connection
物件是只讀的,則返回 true
;否則返回 false
SQLException
- 如果發生資料庫存取錯誤,或者在關閉的連接上調用此方法void setCatalog(String catalog) throws SQLException
Connection
物件資料庫的子空間。
如果驅動程序不支持這些目錄,那麼它將直接忽略此請求。
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
物件報告的所有警告。調用此方法後,在為此 Connection
物件報告新的警告前,getWarnings
方法將返回 null
。
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 語句,可以包含一個或多個 '?' IN 參數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
物件,該物件將產生具有給定型別和共時性的 ResultSet
物件
SQLException
- 如果發生資料庫存取錯誤,在關閉的連接上調用此方法,或者給定參數不是指示型別和共時性的 ResultSet
常數
SQLFeatureNotSupportedException
- 如果 JDBC 驅動程序不支持此方法,或者或者對於指定的結果集型別和結果集共時性此方法不受支持。Map<String,Class<?>> getTypeMap() throws SQLException
Connection
物件關聯的 Map
物件。除非應用程序已經添加了一個條目,否則返回的型別映射將為空。
Connection
物件關聯的 java.util.Map
物件
SQLException
- 如果發生資料庫存取錯誤,或者在關閉的連接上調用此方法
SQLFeatureNotSupportedException
- 如果 JDBC 驅動程序不支持此方法setTypeMap(java.util.Map>)
void setTypeMap(Map<String,Class<?>> map) throws SQLException
TypeMap
物件安裝為此 Connection
物件的型別映射。該映射將用於 SQL 結構型別和獨特型別的自定義映射。
map
- 將作為此 Connection
物件預設型別映射的替代安裝的 java.util.Map
物件
SQLException
- 如果發生資料庫存取錯誤,在關閉的連接上調用此方法,或者給定參數不是 java.util.Map
物件
SQLFeatureNotSupportedException
- 如果 JDBC 驅動程序不支持此方法getTypeMap()
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
- 如果給定可保存性不受支持getHoldability()
,
DatabaseMetaData.getResultSetHoldability()
,
ResultSet
int getHoldability() throws SQLException
Connection
物件創建的 ResultSet
物件的當前可保存性。
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 語句,可以包含一個或多個 '?' 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
PreparedStatement
物件,該物件將產生具有給定型別、共時性和可保存性的 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
物件,該物件將產生具有給定型別、共時性和可保存性的 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
- 可能包含一個或多個 '?' IN 參數佔位符的 SQL 語句autoGeneratedKeys
- 指示是否應該返回自動產生的鍵的標誌,它是 Statement.RETURN_GENERATED_KEYS
或 Statement.NO_GENERATED_KEYS
之一
PreparedStatement
物件,該物件能夠返回自動產生的鍵
SQLException
- 如果發生資料庫存取錯誤,在關閉的連接上調用此方法,或者給定參數不是指示是否應該返回自動產生鍵的 Statement
常數
SQLFeatureNotSupportedException
- 如果 JDBC 驅動程序不支持帶有 Statement.RETURN_GENERATED_KEYS 常數的此方法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 驅動程序不支持此方法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 驅動程序不支持此方法Clob createClob() throws SQLException
Clob
介面的物件。返回的物件最初不包含任何資料。Clob
介面的 setAsciiStream
、setCharacterStream
和 setString
方法可用來向 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
介面的物件。返回的物件最初不包含任何資料。NClob
介面的 setAsciiStream
、setCharacterStream
和 setString
方法可用來向 NClob
添加資料。
NClob
介面的物件
SQLException
- 如果無法建構實作 NClob
介面的物件,在關閉的連接上調用此方法,或者發生資料庫存取錯誤。
SQLFeatureNotSupportedException
- 如果 JDBC 驅動程序不支持此資料型別SQLXML createSQLXML() throws SQLException
SQLXML
介面的物件。返回的物件最初不包含任何資料。SQLXML
介面的 createXmlStreamWriter
和 setString
方法可用來向 SQLXML
物件添加資料。
SQLXML
介面的物件
SQLException
- 如果無法建構實作 SQLXML
介面的物件,在關閉的連接上調用此方法,或者發生資料庫存取錯誤。
SQLFeatureNotSupportedException
- 如果 JDBC 驅動程序不支持此資料型別boolean isValid(int timeout) throws SQLException
由驅動程序提交的用來驗證該連接的查詢將在當前事務的上下文中執行。
timeout
- 等待用來驗證連接是否完成的資料庫操作的時間,以秒為單位。如果在操作完成之前逾時期滿,則此方法返回 false。0 值表示不對資料庫操作應用逾時值。
SQLException
- 如果為 timeout
提供的值小於 0DatabaseMetaData.getClientInfoProperties()
void setClientInfo(String name, String value) throws SQLClientInfoException
應用程序可以使用 DatabaseMetaData.getClientInfoProperties
方法確定驅動程序支持的客戶端資訊屬性,以及為每個屬性指定的最大長度。
驅動程序存儲資料庫中合適位置上指定的值。例如,在特殊註冊表 (special register)、Session參數 (session parameter) 或者系統表 (system table) 列中。為了提高效率,驅動程序可以將設置資料庫中的值推遲到下一次執行語句或者準備執行語句時。除了在資料庫中的適當位置存儲客戶端資訊之外,這些方法不能以任何方式改變連接的行為。為這些方法提供的值只能用於計數、診斷和除錯目的。
如果指定的客戶端屬性名稱不被驅動程序所識別,那麼該驅動程序將產生一個警告。
如果為此方法指定的值大於該屬性的最大長度,則驅動程序可能截取該值並產生一個警告,或者產生一個 SQLClientInfoException
。如果驅動程序產生一個 SQLClientInfoException
,則指定的值不是在連接上設置的。
以下是標準的客戶端資訊屬性。不過,如果驅動程序支持可由某個標準屬性描述的客戶端資訊屬性,則驅動程序無需支持這些屬性,應該使用標準屬性名稱。
name
- 要設置的客戶端資訊屬性名稱value
- 要設置為客戶端資訊屬性的值。如果該值為 null,則清除指定屬性的當前值。
SQLClientInfoException
- 如果在資料庫伺服器上設置客戶端資訊值時資料庫伺服器返回一個錯誤,或者在關閉的連接上調用此方法
void setClientInfo(Properties properties) throws SQLClientInfoException
Properties
物件包含將要設置的客戶端屬性的名稱和值。包含在屬性列表中的客戶端資訊屬性集將替換連接上的當前客戶端資訊屬性集。如果當前在連接上設置的某個屬性不在屬性列表中,則清除該屬性。指定一個空屬性列表將清除連接上的所有屬性。有關更多資訊,請參閱 setClientInfo (String, String)
。
如果在設置任何客戶端資訊屬性時發生錯誤,則拋出 SQLClientInfoException
。SQLClientInfoException
套件含指示未設置的客戶端資訊屬性的資訊。客戶端資訊的狀態是未知的,因為某些資料庫不允許自動設置多個客戶端資訊屬性。對於這些資料庫,在錯誤發生之前已經設置了一個或多個屬性。
properties
- 要設置的客戶端資訊屬性列表
SQLClientInfoException
- 如果在資料庫伺服器上設置 clientInfo 值時資料庫伺服器返回一個錯誤,或者在關閉的連接上調用此方法
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
註:當使用 createArrayOf
創建映射到基本資料型別的陣列物件時,則 Array
物件是基本資料型別陣列還是 Object
陣列將由實作來定義。
註:JDBC 驅動程序負責將元素 Object
陣列映射到 java.sql.Types 中為 Object
的給定類別定義的預設 JDBC SQL 型別。預設映射關係是在 JDBC 規範的附錄 B 中指定的。如果得到的 JDBC 型別對於給定 typeName 而言不是合適的型別,則拋出 SQLException
還是驅動程序支持得到的轉換將由實作來定義。
typeName
- 陣列元素將映射到的型別的 SQL 名稱。typeName 是特定於資料庫的名稱,它可能是內置類別、使用者定義型別或此資料庫支持的標準 SQL 型別的名稱。該參數是 Array.getBaseTypeName
返回的值elements
- 填充所返回物件的元素
SQLException
- 如果發生資料庫錯誤,JDBC 型別對於 typeName 不是合適型別並且該轉換不受支持,typeName 為 null,或者在關閉的連接上調用此方法
SQLFeatureNotSupportedException
- 如果 JDBC 驅動程序不支持此資料型別Struct createStruct(String typeName, Object[] attributes) throws SQLException
typeName
- 此 Struct
物件將映射到的 SQL 建構型別的 SQL 型別名稱。typeName 是為此資料庫定義的使用者定義型別的名稱。該參數是 Struct.getSQLTypeName
返回的值。attributes
- 填充所返回物件的屬性
SQLException
- 如果發生資料庫錯誤,typeName 為 null,或者在關閉的連接上調用此方法
SQLFeatureNotSupportedException
- 如果 JDBC 驅動程序不支持此資料型別
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。