JDBC及C3P0常用類
JDBC(Java Database Connectivity)JAVA資料庫連線,它是一套用於執行SQL語句的Java API。JDBC可以通過不同驅動與不同資料庫連線,相當於JAVA和資料庫之間的橋樑。
JDBC常用API:
DriverManager類用於載入JDBC驅動並且創建於資料庫的連線:
registerDriver(Drive driver) 向DriverManager中註冊給定的JDBC驅動。
getConnection(String url, String user, String pwd) 建立與資料庫的連線,並且返回Connection物件。
Connection介面代表JAVA與資料庫的連線,只有獲得該連線物件後才能訪問資料庫:
getMetaData() 返回表示資料庫元資料的DatabaseMetaData物件。
createStatement() 建立一個Statement物件並將SQL語句傳送到資料庫。
prepareStatement(String sql) 建立一個PreparedStatement物件並將引數化的SQL語句發往資料庫。
prepareCall(String sql) 建立一個CallabelStatement物件來呼叫資料庫的儲存過程。
Statement介面用於執行靜態的SQL語句,並且返回一個結果物件,該介面的物件通過Connection例項的createStatement() 方法獲得。可以利用該物件執行靜態SQL語句:
execute(String sql) 執行各種SQL語句,並且返回一個布林型別的值,如果為true代表所執行的SQL語句有查詢結果,可以通過Statement的getResultSet()方法獲得查詢結果。
executeUpdate(String sql) 用於執行SQL語句中的INSERT, UPDATE和DELETE語句,返回一個int型的值來表示資料庫表中受影響的行數。
excuteQuery(String sql) 執行SQL語句中的SELECT語句,該方法返回一個表示查詢結果的ResultSet物件。
PreparedStatement是Statement的子介面,用於執行預編譯的SQL語句, SQL語句中可以用"?"代替引數,然後可以通過setXxx()方法為SQL語句的引數賦值:
executeUpdate() 在此PreparedStatement物件中執行SQL語句,該語句必須是一個DML語句或者是無返回內容的SQL語句。
executeQuery() 在此PreparedStatement物件中執行SQL查詢,該方法返回的是ResultSet物件。
SetInt(int parameterIndex, int x) 將指定的引數設定為給定int值,float String,Date 型別的同理。
addBatch() 將一組引數新增到此PreparedStatement物件的批處理命令中。
SetCharacterStream(int parameterIndex , java.io.Reader reader, int length) 將指定的輸入流寫入資料庫的文字欄位。
ResultSet介面用於儲存JDBC執行查詢時返回的結果集,該結果集封裝在一個邏輯表格中,該介面內部有一個指向表格資料行的遊標,初始化時,遊標在表格的第一行之前:
getString(int columnIndex) 用於獲得指定欄位的String型別的值, 引數columnIndex代表欄位的索引。int為 getInt(int columnIndex), Date同理。
getString(String columnName) 用於獲得指定欄位的String型別的值, 引數columnName代表欄位的名稱。int為getInt(int columnName), Date同理。
next() 將遊標位置下移一行。
absolute(int row) 將遊標移動到指定行。
beforeFisrt() 將遊標移動到第一行之前。
previous() 將遊標上移一行。
last() 將遊標移動到最後一行。
資料庫連線池:JDBC每次建立和斷開Connection物件都會消耗一定的時間和IO資源,為了避免頻繁地建立資料庫連線,出現了資料庫連線池技術,資料庫連線池是在初始化時建立一定數量的資料庫連線放到連線池中,當應用程式訪問資料庫時不時直接建立Connection物件,而是向連線池申請一個Connection,使用完畢後連線池會將此Connection回收,並交付其他執行緒使用,提高資料庫的訪問效率。
C3P0資料來源常用方法:
void setDriverClass() 設定連線資料庫的驅動名稱。
void setJdbcUrl() 設定連線資料庫的路徑。
void setUser() 設定資料庫登入賬號。
void setPassword() 設定資料庫的登入密碼。
void setMaxPoolSize() 設定資料庫連線池最大的連線數目。
void setMinPoolSize() 設定資料庫連線池最小的連線數目。
void setInitialPoolSize() 設定資料庫連線池初始化的連線數目。
Connection getConnection() 從資料庫連線池中獲取一個連線。
ComboPooledDataSource() ComboPooledDataSource(String configName) 為建立C3P0資料來源的構造方法。