1. 程式人生 > >JDBC知識點總結

JDBC知識點總結

JDBC知識點總結

1.什麼是JDBC?

JDBC: Java Database Connectivity  java資料庫連線,即使用java程式碼傳送sql語句的技術,為多種關係型資料庫提供統一訪問。

2.簡述JDBC連線資料庫的步驟。

載入驅動  建立連線  執行sql並返回執行結果  處理結果   關閉資源

//1.載入驅動

Class.forName("com.mysql.jdbc.Driver");

//2.建立連線

Connectionconn = DriverManager.getConnection(url, user, password);

//3.執行sql語句並返回執行結果

//準備sql

String sql =

"SELECT * FROM student";

//建立Statement,用PreparedStatement更好

//PreparedStatement stmt = conn.prepareStatement(sql);

Statementstmt = conn.createStatement();

//執行sql

ResultSet rs = stmt.executeQuery(sql);

//4.處理結果

while(rs.next()){

int id = rs.getInt("id");

String name = rs.getString("name");

String gender = rs.getString(

"gender");

System.out.println(id+","+name+","+gender);

}

//5.關閉資源

stmt.close();

conn.close();

3.JDBC中的ResultSet是指什麼?

ResultSet是結果集,用來存放執行sql後返回的執行結果,對應於資料庫中的資料表。

4.JDBC中,PreparedStatement相較於Statement有什麼優點?

1PreparedStatement可以使用預編譯的sql,而Statment只能使用靜態的sql

2PreparedStatement可以使用sql快取區,效率比Statment

3PreparedStatement

可以有效防止sql注入,而Statment不能防止sql注入。

5. JDBC中如何進行事務處理?

答:一個事務是由一條或多條對資料庫操作的SQL語句所組成的一個不可分割的工作單元,只有當事務中的所有操作都正常執行了,整個事務才會被提交給資料庫。在JDBC中,一般是通過commit()方法或rollback()方法來結束事務的操作。其中commit()方法表示完成對事務的提交,rollback()方法表示完成事務回滾,多用於在處理事務的過程中出現了異常的情況,這兩種方法都位於java.sql.Connection類中。一般而言,事務預設操作是自動提交,即操作成功後,系統將自動呼叫commit()方法,否則將呼叫rollback()方法。

當然,在JDBC中,也可以通過呼叫setAutoCommit(false)方法來禁止自動提交,然後就可以把多個數據庫操作的表示式作為一個事務,在操作完成後呼叫commit()方法實現整體提交,如果其中一個表示式操作失敗,就會丟擲異常而不會呼叫commit()方法。在這種情況下,就可以在異常捕獲的程式碼塊中呼叫rollback()進行事務回滾。通過此種方法可以保持對資料庫的多次操作後,資料仍然保持一致性。

6. 在進行資料庫程式設計時,連線池有什麼作用?

答:實際開發中“獲得連線”或“釋放資源”是非常消耗系統資源的兩個過程,為了解決此類效能問題,通常情況我們採用連線池技術,來共享連線Connection

用池來管理Connection,這樣可以重複使用Connection。有了池,所以我們就不用自己來建立Connection,而是通過池來獲取Connection物件。當使用完Connection後,呼叫Connectionclose()方法也不會真的關閉Connection,而是把Connection“歸還”給池。池就可以再利用這個Connection物件了。

常見的連線池有C3P0DBCP

C3P0開源免費的連線池!目前使用它的開源專案有:SpringHibernate等。使用第三方工具需要匯入jar包,c3p0使用時還需要新增配置檔案c3p0-config.xml

DBCP也是一個開源的連線池,是Apache Common成員之一,在企業開發中也比較常見,tomcat內建的連線池。