更多課程 選擇中心
        Java培訓

        400-111-8989

        Java培訓 > Java教程  > 正文

        JDBC總結的十個實踐

        • 發布:Java培訓
        • 來源:Java教程
        • 時間:2018-03-01 13:11

        JDBC總結的十個最佳時間

        JDBC 是 Java 為多種關系型數據庫提供的統一的訪問接口,以下是使用 JDBC 總結的十個實踐。

        1. 使用 PrearedStatement

        任何一個使用過 JDBC 的Java程序員幾乎都知道這個,PreparedStatment 可以通過預編譯的方式避免我們在拼接 SQL 時造成 SQL 注入。

        2. 使用 ConnectionPool (連接池)

        使用連接池作為實踐幾乎都成了公認的標準。一些框架已經提供了內建的連接池支持.

        例如 Spring 中的 Database Connection Pool,如果你的應用部署在 JavaEE 的應用服務器中, 例如 JBoss,WAS,這些服務器也會有內建的連接池支持,例如 DBCP。

        使用連接的原因簡單的說就是因為創建 JDBC 連接耗時比較長,如果每次查詢都重新打開一個連接, 然后關閉,性能將會非常低,而如果事先創建好一批連接緩存起來,使用的時候取出, 不使用的時候仍不關閉,將會節省大量的創建關閉連接的時間。

        3. 禁用自動提交

        這個實踐在我們使用 JDBC 的批量提交的時候顯得非常有用,將自動提交禁用后, 你可以將一組數據庫操作放在一個事務中,而自動提交模式每次執行 SQL 語句都將執行自己的事務, 并且在執行結束提交。

        4. 使用 Batch Update

        JDBC 的 API 提供了通過 addBatch() 方法向 batch 中添加 SQL 查詢,然后通過 executeBatch() 執行批量的查詢。

        JDBC batch update 可以減少數據庫數據傳輸的往返次數,從而提高性能。

        5. 使用列名獲取 ResultSet 中的數據,從而避免 invalidColumIndexError

        JDBC 中的查詢結果封裝在 ResultSet 中,我們可以通過列名和列序號兩種方 式獲取查詢的數據, 當我們傳入的列序號不正確的時候,就會拋出 invalidColumIndexException。

        例如你傳入了0,就會出錯,因為 ResultSet 中的列序號是從1開始的。

        另外,如果你更改了數據表中列的順序,你也不必更改 JDBC 代碼,保持了程序的健壯性。

        有一些 Java 程序員 可能會說通過序號訪問列要比列名訪問快一些,確實是這樣,但是為了程序的健壯性、可讀性,我還是更推薦你使用列名來訪問。

        6. 使用變量綁定而不是字符串拼接

        在第一條實踐中,我們已經說過要使用 PreparedStatment 可以防止注入,而使用?

        或者其他占位符也會提升性能,因為這樣數據庫就可以使用不同的參數執行相同的查詢, 這個實踐帶來更高的性能的同時也防止了 SQL 注入。

        7. 要記住關閉 Statement、PreparedStatement 和 Connection

        通常的做法是在 finally 塊中關閉它們,這樣做的好處是不論語句執行正確與否, 不管是否有異常拋出,都能保證資源被釋放。

        在 Java7 中,可以通過 Automatic Resource Management Block 來自動的關閉資源。

        8. 選擇合適的 JDBC 驅動

        有四種 JDBC 驅動,分別是

        1). JDBC-ODBC Bridge driver (bridge driver)

        2). Native-API/partly Java driver (native driver)

        3). AllJava/Net-protocol driver (middleware driver)

        4). All Java/Native-protocol driver (Pure java driver)

        9. 盡量使用標準的 SQL 語句,從而在某種程度上避免數據庫對 SQL 支持的差異

        不同的數據庫廠商的數據庫產品支持的 SQL 的語法會有一定的出入,為了方便移植,我推薦使用標準的 ANSI SQL 標準寫 SQL 語句。

        10. 使用正確的 getXXX() 方法

        當從 ResultSet 中讀取數據的時候,雖然 JDBC 允許你使用 getString() 和 getObject() 方法獲取任何數據類型, 推薦使用正確的 getXXX 方法,這樣可以避免數據類型轉換。

        感謝大家閱讀由java培訓機構分享的“JDBC總結的十個實踐”希望對各位學員有所幫助,更多精彩內容請關注Java培訓官網

        預約申請免費試聽課

        填寫下面表單即可預約申請免費試聽!怕錢不夠?可就業掙錢后再付學費! 怕學不會?助教全程陪讀,隨時解惑!擔心就業?一地學習,可全國推薦就業!

        上一篇:Java的運算符
        下一篇:J.U.C系列-線程安全的理論講解
        12大要點讓你的Java開發所向披靡~

        12大要點讓你的Java開發所向披靡~

        學習Java最好的12本免費在線電子書

        學習Java最好的12本免費在線電子書

        Java常用日志框架介紹

        Java常用日志框架介紹

        一篇文章了解RPC框架原理

        一篇文章了解RPC框架原理

        • 掃碼領取資料

          回復關鍵字:視頻資料

          免費領取 達內課程視頻學習資料

        • 視頻學習QQ群

          添加QQ群:1143617948

          免費領取達內課程視頻學習資料

        Copyright ? 2021 Tedu.cn All Rights Reserved 京ICP備08000853號-56 京公網安備 11010802029508號 達內時代科技集團有限公司 版權所有

        選擇城市和中心
        貴州省

        福建省

        • 達內廈門軟件園中心
        廣西省

        海南省

        国产高清情侣视频2019年,限制电影福利在线观看,23伊人大香蕉 百度 好搜 搜狗
        <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <文本链> <文本链> <文本链> <文本链> <文本链> <文本链>