亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

通過JDBC連接Oracle數據庫中的十大技巧

系統 1813 0
?
??
1 、在客 開發 中使用 Thin 驅動 程序

  在 開發 Java 件方面, Oracle 的數據 提供了四 種類 型的 驅動 程序,二 用于 件、 applets servlets 等客 件,另外二 用于數據 中的 Java 儲過 程等服 器端 件。在客 機端 件的 開發 中,我 可以 選擇 OCI 驅動 程序或 Thin 驅動 程序。 OCI 驅動 程序利用 Java 本地化接口( JNI ),通 Oracle 件與數據 庫進 行通 Thin 驅動 程序是 Java 驅動 程序,它直接與數據 庫進 行通 得最高的性能, Oracle 在客 件的 開發 中使用 OCI 驅動 程序, 似乎是正確的。但我建 使用 Thin 驅動 程序,因 多次 測試發現 ,在通常情況下, Thin 驅動 程序的性能都超 OCI 驅動 程序。

2
關閉 提交功能,提高系 性能

  在第一次建立與數據 ,在缺省情況下, 接是在自 提交模式下的。 得更好的性能,可以通 過調 false 參數的 Connection setAutoCommit() 方法 關閉 提交功能,如下所示:

conn.setAutoCommit(false);

得注意的是,一旦 關閉 了自 提交功能,我 就需要通 過調 Connection commit() rollback() 方法來人工的方式 務進 行管理。

3 、在 動態 SQL 或有 時間 限制的命令中使用 Statement

  在 SQL 命令 ,我 有二 種選擇 :可以使用 PreparedStatement 象,也可以使用 Statement 象。無 多少次地使用同一個 SQL 命令, PreparedStatement 都只 它解析和 編譯 一次。當使用 Statement 行一個 SQL 命令 ,都會 行解析和 編譯 可能會使你 認為 ,使用 PreparedStatement 象比使用 Statement 象的速度更快。然而,我 行的 測試 表明,在客 件中,情況并非如此。 因此,在有 時間 限制的 SQL 操作中,除非成批地 SQL 命令,我 們應 當考 使用 Statement 象。

  此外,使用 Statement 象也使得 動態 SQL 命令更加 簡單 ,因 可以將字符串 接在一起,建立一個有效的 SQL 命令。因此,我 認為 Statement 象可以使 動態 SQL 命令的 建和 得更加 簡單

4
、利用 helper 函數 對動態 SQL 命令 行格式化

  在 建使用 Statement 行的 動態 SQL 命令 ,我 需要 理一些格式化方面的 問題 。例如,如果我 建一個將名字 O'Reilly 插入表中的 SQL 命令, 使用二個相 “''” 號替 O'Reilly 中的 “'” 號。完成 些工作的最好的方法是 建一個完成替 操作的 helper 方法,然后在 接字符串心服用公式表達一個 SQL 命令 ,使用 建的 helper 方法。 與此 似的是,我 可以 helper 方法接受一個 Date 型的 ,然后 出基于 Oracle to_date() 函數的字符串表達式。

5
、利用 PreparedStatement 象提高數據 體效率

  在使用 PreparedStatement SQL 命令 ,命令被數據 庫進 行解析和 編譯 ,然后被放到命令 沖區。然后, 行同一個 PreparedStatement ,它就會被再解析一次,但不會被再次 編譯 。在 沖區中可以 發現預編譯 的命令,并且可以重新使用。在有大量用 的企 業級應 件中, 常會重 復執 行相同的 SQL 命令,使用 PreparedStatement 來的 編譯 次數的減少能 提高數據 體性能。如果不是在客 建、 預備 PreparedStatement 需要的 時間長 Statement ,我會建 在除 動態 SQL 命令之外的所有情況下使用 PreparedStatement 象。

6
、在成批 理重 的插入或更新操作中使用 PreparedStatement

  如果成批地 理插入和更新操作,就能 夠顯 著地減少它 所需要的 時間 Oracle 提供的 Statement CallableStatement 并不真正地支持批 理,只有 PreparedStatement 象才真正地支持批 理。我 可以使用 addBatch() executeBatch() 方法 選擇標 準的 JDBC 理,或者通 利用 PreparedStatement 象的 setExecuteBatch() 方法和 準的 executeUpdate() 方法 選擇 速度更快的 Oracle 有的方法。要使用 Oracle 有的批 理機制,可以以如下所示的方式 調 setExecuteBatch()


PreparedStatement pstmt3D null;
try {
((OraclePreparedStatement)
pstmt).setExecuteBatch(30);
...
pstmt.executeUpdate();
}


調 setExecuteBatch() 指定的 是一個上限,當達到 該值時 ,就會自 地引 SQL 命令 行, 準的 executeUpdate() 方法就會被作 理送到數據 中。我 可以通 過調 PreparedStatement sendBatch() 方法隨 時傳輸 理任

7
、使用 Oracle locator 方法插入、更新大 象( LOB

Oracle PreparedStatement 不完全支持 BLOB CLOB 等大 象的 理,尤其是 Thin 驅動 程序不支持利 PreparedStatement 象的 setObject() setBinaryStream() 方法 BLOB ,也不支持利用 setCharacterStream() 方法 CLOB 。只有 locator 本身中的方法才能 從數據 LOB 型的 。可以使用 PreparedStatement 象插入或更新 LOB ,但需要使用 locator 才能 LOB 。由于存在 二個 問題 ,因此,我建 使用 locator 的方法來插入、更新或 LOB

8
、使用 SQL92 調 用存 儲過

  在 調 儲過 ,我 可以使用 SQL92 Oracle PL/SQL ,由于使用 Oracle PL/SQL 并沒有什 么實際 的好 ,而且會 以后 維護 你的 用程序的 開發 員帶 來麻 ,因此,我建 調 用存 儲過 使用 SQL92

9
、使用 Object SQL 象模式 移到數據

  既然可以將 Oracle 的數據 面向 象的數據 來使用,就可以考 用程序中的面向 象模式 到數據 中。目前的方法是 Java bean 為偽 裝的數據 庫對 象,將它 的屬性映射到 系表中,然后在 bean 中添加方法。盡管 這樣 作在 Java 中沒有什 么問題 ,但由于操作都是在數據 之外 行的,因此其他 訪問 數據 件無法利用 象模式。如果利用 Oracle 的面向 象的技 ,可以通 過創 建一個新的數據 庫對 型在數據 中模仿其數據和操作,然后使用 JPublisher 等工具生成自己的 Java bean 。如果使用 這種 方式,不但 Java 用程序可以使用 件的 象模式,其他需要共享你的 用中的數據和操作的 件也可以使用 件中的 象模式。

10
、利用 SQL 完成數據 內的操作

  我要向大家介 的最重要的 經驗 是充分利用 SQL 的面向集合的方法來解決數據 庫處 理需求,而不是使用 Java 程化的 言。

  如果 程人 要在一個表中 多行, 果中的 個行都會 找其他表中的數據,最后, 程人 員創 建了獨立的 UPDATE 命令來成批地更新第一個表中的數據。與此 似的任 可以通 set 子句中使用多列子 查詢 而在一個 UPDATE 命令中完成。當能 一的 SQL 命令中完成任 ,何必要 數據在網上流來流去的?我建 戶認 真學 如何最大限度地 發揮 SQL 的功能 ?

通過JDBC連接Oracle數據庫中的十大技巧


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 国产精品二区页在线播放 | 久久久久九九精品影院 | 日日操干 | 婷婷六月天激情 | 五月婷婷狠狠干 | 久久夜夜操妹子 | 亚洲图区欧美 | 午夜香蕉视频 | 99这里只有精品 | 老头与老头同性tube可播放 | 欧美精品一级毛片 | 色一情一乱一伦麻豆 | 久久国产精品男女热播 | 午夜视频在线观看国产www | 激情福利| 天天爱天天做天天爽天天躁 | 久久久久久毛片免费播放 | 好看的中文字幕在线 | 国产91精品久久久久久久 | 黄片毛片免费在线观看 | 五月婷婷激情 | 天天视频国产免费入口 | 亚洲精品国产字幕久久不卡 | 狠狠色丁香六月色 | 亚洲激情视频在线播放 | 奇米青青草 | 国产免费私人影院永久免费 | 九色视频网站 | 免费一级毛片在线视频观看 | 久热免费在线观看 | 亚洲在线成人 | 特黄特级毛片免费视 | 国产一区精品视频 | 国产一区三区二区中文在线 | 国产高清看片日韩欧美久久 | 99久久国产亚洲综合精品 | 国内精品久久久久久麻豆 | 日本欧美在线视频 | 亚洲精品中文字幕乱码一区二区 | 色老师| 99九九热|