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