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 = //建立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( System.out.println(id+","+name+","+gender); } //5.關閉資源 stmt.close(); conn.close(); |
3.JDBC中的ResultSet是指什麼?
ResultSet是結果集,用來存放執行sql後返回的執行結果,對應於資料庫中的資料表。
4.JDBC中,PreparedStatement相較於Statement有什麼優點?
1)PreparedStatement可以使用預編譯的sql,而Statment只能使用靜態的sql
2)PreparedStatement可以使用sql快取區,效率比Statment高
3)PreparedStatement
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後,呼叫Connection的close()方法也不會真的關閉Connection,而是把Connection“歸還”給池。池就可以再利用這個Connection物件了。
常見的連線池有C3P0、DBCP。
C3P0開源免費的連線池!目前使用它的開源專案有:Spring、Hibernate等。使用第三方工具需要匯入jar包,c3p0使用時還需要新增配置檔案c3p0-config.xml。
DBCP也是一個開源的連線池,是Apache Common成員之一,在企業開發中也比較常見,tomcat內建的連線池。