mysql JDBC總結

來源:互聯網
上載者:User

標籤:des   style   blog   io   color   ar   使用   sp   java   

今天複習了下jdbc操作資料庫,其實通過複習,感覺對類的熟悉和方法的運用都是小事,畢竟有API都可以查得到。
  關鍵是一些設計,

1、  比如:

  Class.forName("");這個是用來載入驅動,擷取driver執行個體,並在載入的過程中註冊到了DriverManager中,由後者去管理。

    所以:在DriverManager.getConnection()時,發生的操作有:Drivermanager尋找已經註冊的列表,然後根據url去對應,最後通過driver擷取資料庫連接,假如有註冊的重複的驅動,預設最先匹配的那個驅動為正確結果。在DriverManager中提供了關於一些driver的管理機制,包括重複的一些處理。

2、 PreparedStatement,Statement

兩者的區別:前者相當於sql先行編譯,在程式執行的時候已經把sql編譯好,儘管它可以動態傳參,這也提高了執行效率。

       前者還可以防止sql注入

       如果基本資料庫和驅動程式在語句提交之後仍保持這些語句的開啟狀態,則同一個 PreparedStatement 可執行多次。如果這一點不成立,那麼試圖通過使用                       PreparedStatement對象代替 Statement 對象來提高效能是沒有意義的。 

樣本:

1 pstmt.setString(1, "Hi"); 2 for (int i = 0; i < 10; i++) { 3 pstmt.setInt(2, i); 4 int rowCount = pstmt.executeUpdate(); 5 } 

 

3、ResultSet提供了很好的結果集管理機制,主要實現了java.sql.ResultSet介面,

  比如查看結果集有幾行幾列,查看結果集的列名,查看結果集最後一行是否為空白等等。

4、關於一些長欄位的輸入和輸出問題,見代碼。

for(;;);mt = con.createStatement(); ResultSet r = stmt.executeQuery("SELECT x FROM Table2"); // 現在以 4K 塊大小擷取列 1 結果: byte buff = new byte[4096]; while (r.next()) { Java.io.InputStream fin = r.getAsciiStream(1); for (;;) { int size = fin.read(buff); if (size == -1) { // 到達流末尾 break; } // 將新填充的緩衝區發送到 ASCII 輸出資料流: output.write(buff, 0, size); } }
java.io.File file = new java.io.File("/tmp/data"); int fileLength = file.length(); java.io.InputStream fin = new java.io.FileInputStream(file); java.sql.PreparedStatement pstmt = con.prepareStatement( "UPDATE Table5 SET stuff = ? WHERE index = 4"); pstmt.setBinaryStream (1, fin, fileLength); pstmt.executeUpdate(); 

資料庫針對長欄位提供了三種流機制:

getBinaryStream
getAsciiStream
getUnicodeStream

其中for(;;)是無限迴圈的意思..

 

mysql JDBC總結

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.