接口 java.sql.Connection
- public interface Connection
一個 Connection 表示與一個特定數(shù)據(jù)庫的會話。在一個 Connection 的上下文中,執(zhí)行 SQL 語句并返回結(jié)果。
一個 Connection 的數(shù)據(jù)庫能夠提供描述以下內(nèi)容的信息,它的表,它支持 SQL 語法,它的存儲過程,該連接的能力等等。該信息可用 getMetaData
方法獲得。
注意: 缺省情況下,在執(zhí)行完每一個語句之后,Connection 自動地提交更改。如果禁止自動提交,必須進行顯式的提交,否則將不保存對數(shù)據(jù)庫的更改。
- 參見:
- getConnection, Statement, ResultSet, DatabaseMetaData
變量索引
- TRANSACTION_NONE
- 不支持事務。
- TRANSACTION_READ_COMMITTED
- 防止頁面重寫讀??;但可能發(fā)生不可重復的讀取和幻象讀取。
- TRANSACTION_READ_UNCOMMITTED
- 可能發(fā)生頁面重寫讀取,不可重復的讀取和幻象讀取。
- TRANSACTION_REPEATABLE_READ
- 防止頁面重寫讀取和不可重復的讀取,但可能發(fā)生幻象讀取。
- TRANSACTION_SERIALIZABLE
- 防止頁面重寫讀取,不可重復的讀取和幻象讀取。
方法索引
- clearWarnings()
- 此調(diào)用完成之后,以后的 getWarnings 將返回 null 直到為該
Connection 報告了一個新的警告。
- close()
- 在有些情況下,需要立即釋放 Connection 的數(shù)據(jù)庫和 JDBC 資源,而不是等待它們被自動釋放;close 方法可以進行立即釋放。
- commit()
- 提交從上一次提交 / 回滾操作后所有的更改,使之成為永久的更改,并釋放 Connection 當前保持的任何數(shù)據(jù)庫鎖。
- createStatement()
- 不帶參數(shù)的 SQL 語句通常用 Statement 對象執(zhí)行。
- getAutoCommit()
- 獲得當前自動提交狀態(tài)。
- getCatalog()
- 返回 Connection 的當前分類表名。
- getMetaData()
- 一個 Connection 的數(shù)據(jù)庫能夠提供描述以下內(nèi)容的信息,它的表,它支持 SQL 語法,它的存儲過程,該連接的能力等等。
- getTransactionIsolation()
- 獲得該 Connection 的當前事務隔離模式。
- getWarnings()
- 返回由該 Connection 的調(diào)用報告的第一個警告。
- isClosed()
- 檢測一個 Connection 是否被關閉。
- isReadOnly()
- 檢測該連接是否在只讀狀態(tài)。
- nativeSQL(String)
- 在發(fā)送之前,一個驅(qū)動程序把 JDBC sql 語法轉(zhuǎn)換為它的系統(tǒng)本地的
SQL 語法;nativeSQL 將返回驅(qū)動程序要發(fā)送語句的本地形式。
- prepareCall(String)
- 通過創(chuàng)建一個 CallableStatement 來處理一個 SQL 存儲過程調(diào)用語句。
- prepareStatement(String)
- 一條帶有或不帶 IN 參數(shù)的 SQL 語句可以被預編譯并存放在
PreparedStatement 對象中。
- rollback()
- 回滾撤消從上一次提交 / 回滾操作后的所有更改,并釋放 Connection 當前保持的任何數(shù)據(jù)庫鎖。
- setAutoCommit(boolean)
- 如果一個連接處于自動提交狀態(tài),它所有的 SQL 語句將被執(zhí)行并作為單個事務提交。
- setCatalog(String)
- 通過設置一個分類表名,可以選擇該 Connection 的數(shù)據(jù)庫的一個子空間。
- setReadOnly(boolean)
- 可以把一個連接設置為只讀模式,作為啟動數(shù)據(jù)庫優(yōu)化的提示。
- setTransactionIsolation(int)
- 可以用一個 TRANSACTION_* 值調(diào)用該方法,改變事務的隔離級別。
變量
TRANSACTION_NONE
public static final int TRANSACTION_NONE
- 不支持事務。
TRANSACTION_READ_UNCOMMITTED
public static final int TRANSACTION_READ_UNCOMMITTED
- 可能發(fā)生頁面重寫讀取,不可重復的讀取和幻象讀取。
TRANSACTION_READ_COMMITTED
public static final int TRANSACTION_READ_COMMITTED
- 防止頁面重寫讀??;可能發(fā)生不可重復的讀取和幻象讀取。
TRANSACTION_REPEATABLE_READ
public static final int TRANSACTION_REPEATABLE_READ
- 防止頁面重寫讀取和不可重復的讀取,但可能發(fā)生幻象讀取。
TRANSACTION_SERIALIZABLE
public static final int TRANSACTION_SERIALIZABLE
- 防止頁面重寫讀取,不可重復的讀取和幻象讀取。
方法
createStatement
public abstract Statement createStatement() throws SQLException
- 不帶參數(shù)的 SQL 語句通常用 Statement 對象執(zhí)行。 如果多次執(zhí)行同一個 SQL 語句,使用一個 PreparedStatement 就更有效。
- 返回值:
- 一個新建的 Statement 對象
- 拋出:
SQLException
- 如果發(fā)生了數(shù)據(jù)訪問錯誤。
prepareStatement
public abstract PreparedStatement prepareStatement(String sql) throws SQLException
- 一條帶有或不帶 IN 參數(shù)的 SQL 語句可以被預編譯并存放在
PreparedStatement 對象中。 該對象可用于有效地多次執(zhí)行該語句。
注意: 為了處理那些能由預編譯得到好處的帶參數(shù)的 SQL 語句,該方法進行了專門的優(yōu)化。如果驅(qū)動程序支持預編譯,prepareStatement 將把該語句發(fā)送給數(shù)據(jù)庫進行預編譯。有些驅(qū)動程序不支持預編譯。在這種情況下,在執(zhí)行 PreparedStatement 語句之前,將不把語句發(fā)送到數(shù)據(jù)庫。這對用戶沒有直接的影響;但是它確實影響某些 SQLExceptions 將由哪個方法拋出 。
- 參數(shù):
- sql - 一個 SQL 語句,它可以包含一個或多個 '?' IN 參數(shù)的位置標志符。
- 返回值:
- 一個包含該預編譯語句的新建的 PreparedStatement 對象。
- 拋出:
SQLException
- 如果發(fā)生了數(shù)據(jù)訪問錯誤。
prepareCall
public abstract CallableStatement prepareCall(String sql) throws SQLException
- 通過創(chuàng)建一個 CallableStatement 來處理一個 SQL 存儲過程調(diào)用語句。CallableStatement 提供了設置其 IN 和 OUT 參數(shù)的方法和執(zhí)行它的方法。
注意: 為了處理存儲過程調(diào)用語句對該方法進行了優(yōu)化。當 prepareCall 完成時,有些驅(qū)動程序可能把調(diào)用語句發(fā)送給數(shù)據(jù)庫;其它的語句可能等到執(zhí)行 CallableStatement 時發(fā)送。這對用戶沒有直接的影響;但是它確實影響到哪個方法拋出一定的 SQLExceptions。
- 參數(shù):
- sql - 一個 SQL 語句,它可以包含一個或多個 '?',參數(shù)的位置標志符。 通常這個語句是一個 JDBC 功能調(diào)用轉(zhuǎn)義字符串。
- 返回值:
- 一個包含該預編譯的 SQL 語句的新建的 CallableStatement 對象。
- 拋出:
SQLException
- 如果發(fā)生了數(shù)據(jù)訪問錯誤。
nativeSQL
public abstract String nativeSQL(String sql) throws SQLException
- 在發(fā)送之前,一個驅(qū)動程序把 JDBC sql 語法轉(zhuǎn)換為它的系統(tǒng)本地的
SQL 語法;nativeSQL 將返回驅(qū)動程序要發(fā)送語句的本地形式。
- 參數(shù):
- sql - 一個 SQL 語句,它可以包含一個或多個 '?',參數(shù)的位置標志符
- 返回值:
- 該語句的本地格式
- 拋出:
SQLException
- 如果發(fā)生了數(shù)據(jù)訪問錯誤。
setAutoCommit
public abstract void setAutoCommit(boolean autoCommit) throws SQLException
- 如果一個連接處于自動提交狀態(tài),它所有的 SQL 語句將被執(zhí)行并作為單個事務被提交。否則,它的 SQL 語句將被分為事務組,由 commit() 或
rollback() 終止。缺省情況下,新建的連接處于自動提交模式。無論下面兩種情況哪個先發(fā)生都進行提交:語句完成或執(zhí)行下一條語句。在語句返回一個
ResultSet 的情況下,語句將在檢索完 ResultSet 的最后一行或關閉 ResultSet
時完成。在復雜的情況下,單條語句可能返回多個結(jié)果,和多個輸出參數(shù)值。在此只有當已經(jīng)取出所有的結(jié)果和參數(shù)值后才進行提交。
- 參數(shù):
- autoCommit - 如果為 true 則啟動自動提交;否則禁止自動提交。
- 拋出:
SQLException
- 如果發(fā)生了數(shù)據(jù)訪問錯誤。
getAutoCommit
public abstract boolean getAutoCommit() throws SQLException
- 獲得當前自動提交狀態(tài)。
- 返回值:
- 自動提交模式的當前狀態(tài)。
- 拋出:
SQLException
- 如果發(fā)生了數(shù)據(jù)訪問錯誤。
- 參見:
- setAutoCommit
commit
public abstract void commit() throws SQLException
- 提交從上一次提交 / 回滾操作后的更改,使之成為永久的更改,并釋放 Connection 當前保持的任何數(shù)據(jù)庫鎖。 只有當禁止自動提交時可以使用該方法。
- 拋出:
SQLException
- 如果發(fā)生了數(shù)據(jù)訪問錯誤。
- 參見:
- setAutoCommit
rollback
public abstract void rollback() throws SQLException
- 回滾撤消從上一次提交 / 回滾操作后的所有更改,并釋放 Connection
當前保持的任何數(shù)據(jù)庫鎖。 只有當禁止自動提交時可以使用該方法。
- 拋出:
SQLException
- 如果發(fā)生了數(shù)據(jù)訪問錯誤。
- 參見:
- setAutoCommit
close
public abstract void close() throws SQLException
- 在有些情況下,需要立即釋放 Connection 的數(shù)據(jù)庫和 JDBC 資源,而不是等待它們被自動釋放;close 方法可以進行立即釋放。
注意: 當一個 Connection 由垃圾箱收集時,它被自動關閉。 一定的致命錯誤也將使 Connection 關閉。
- 拋出:
SQLException
- 如果發(fā)生了數(shù)據(jù)訪問錯誤。
isClosed
public abstract boolean isClosed() throws SQLException
- 檢測一個 Connection 是否被關閉。
- 返回值:
- 如果連接被關閉則為 true,如果它仍然打開則為 false。
- 拋出:
SQLException
- 如果發(fā)生了數(shù)據(jù)訪問錯誤。
getMetaData
public abstract DatabaseMetaData getMetaData() throws SQLException
- 一個 Connection 的數(shù)據(jù)庫提供了描述以下內(nèi)容的信息,它的表,它支持 SQL 語法,它的存儲過程,該連接的能力等等。通過一個
DatabaxeMetaData 對象可以使用這些信息。
- 返回值:
- 該 Connection 的一個 DatabaseMetaData 對象。
- 拋出:
SQLException
- 如果發(fā)生了數(shù)據(jù)訪問錯誤。
setReadOnly
public abstract void setReadOnly(boolean readOnly) throws SQLException
- 可以把一個連接設置為只讀模式,作為啟動數(shù)據(jù)庫優(yōu)化的提示。
注意: 不能在事務執(zhí)行的中間調(diào)用 setReadOnly。
- 參數(shù):
- readOnly - 如果為 true 則啟動只讀模式;如果為 false 則禁止只讀模式。
- 拋出:
SQLException
- 如果發(fā)生了數(shù)據(jù)訪問錯誤。
isReadOnly
public abstract boolean isReadOnly() throws SQLException
- 檢測該連接是否在只讀狀態(tài)。
- 返回值:
- 如果連接是只讀的則為 true。
- 拋出:
SQLException
- 如果發(fā)生了數(shù)據(jù)訪問錯誤。
setCatalog
public abstract void setCatalog(String catalog) throws SQLException
- 通過設置一個分類表名,可以選擇該 Connection 的數(shù)據(jù)庫的一個子空間。 如果該驅(qū)動程序不支持分類表,它將忽略該請求。
- 拋出:
SQLException
- 如果發(fā)生了數(shù)據(jù)訪問錯誤。
getCatalog
public abstract String getCatalog() throws SQLException
- 返回 Connection 的當前分類表名。
- 返回值:
- 當前分類表名或 null。
- 拋出:
SQLException
- 如果發(fā)生了數(shù)據(jù)訪問錯誤。
setTransactionIsolation
public abstract void setTransactionIsolation(int level) throws SQLException
- 可以用一個 TRANSACTION_* 值調(diào)用該方法,改變事務的隔離級別。
注意: 不能在事務執(zhí)行的中間調(diào)用 setTransactionIsolation。
- 參數(shù):
- level - 一個具有 TRANSACTION_NONE 異常的 TRANSACTION_* 隔離值;有些數(shù)據(jù)庫不支持其它的值。
- 拋出:
SQLException
- 如果發(fā)生了數(shù)據(jù)訪問錯誤。
- 參見:
- supportsTransactionIsolationLevel
getTransactionIsolation
public abstract int getTransactionIsolation() throws SQLException
- 獲得該 Connection 的當前事務隔離模式。
- 返回值:
- 當前 TRANSACTION_* 模式的值。
- 拋出:
SQLException
- 如果發(fā)生了數(shù)據(jù)訪問錯誤。
getWarnings
public abstract SQLWarning getWarnings() throws SQLException
- 返回在該 Connection 上的調(diào)用報告的第一個警告。
注意: 后繼的警告將被鏈接到這個 SQLWarning 上。
- 返回值:
- 第一個 SQLWarning 或 null
- 拋出:
SQLException
- 如果發(fā)生了數(shù)據(jù)訪問錯誤。
clearWarnings
public abstract void clearWarnings() throws SQLException
- 此調(diào)用完成之后,以后的 getWarnings 將返回 null,直到為該
Connection 報告了一個新的警告。
- 拋出:
SQLException
- 如果發(fā)生了數(shù)據(jù)訪問錯誤。