亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? preparedstatement.txt

?? java學習文檔
?? TXT
字號:
作者:羅亭
email: tingluo@263.net
日期:7/30/2001 11:59:54 AM
From: www.theserverside.com -->SMTH
翻譯: SuperMMX 

     為什么 PreparedStatement 很重要, 以及怎樣"正確"使用他們. 

數據庫有一個艱苦的工作. 它們不斷地從許多客戶端讀取 SQL 查詢, 對數據進行盡 
可能高效的 查詢. 處理語句可能成為一個代價較高的操作, 但是現在數據庫都是很 
好的設計, 這樣這個困難 被減到最小. 但是這些優化需要應用程序開發者的協助, 
這篇文章給你展示一下怎樣正確使用 PreparedStatement 來漂亮地幫助數據庫執行 
這些優化. 

一個數據庫怎樣執行一條語句? 

顯然, 不要希望這里有許多細節; 我們只看一下對這篇文章比較重要的部分. 當一個 
數據庫接收 到一條語句的時候, 數據庫引擎首先解析這條語句, 查看語法錯誤. 一 
旦語句解析了, 數據庫 需要找出最有效的方法來執行這條語句. 這個計算起來代價 
很大. 數據庫檢查什么索引(如果有 的話)能有所幫助, 或者它是否能全部讀出一張 
表中所有的記錄. 數據庫根據這些關于數據庫所 存數據的統計數字來找出最好的 
辦法. 一旦制訂出查詢方案, 就可以由數據庫引擎來執行. 

需要 CPU 來產生訪問方案. 理想的情況, 如果我們把相同的語句給數據庫發送兩 
次, 我們期望 數據庫重用第一條記錄的訪問方案. 這會比第二次重新產生方案要使 
用較少的 CPU. 

語句緩沖 

數據庫可以進行調節來做語句緩沖. 通常包含一些類型的語句緩沖. 緩沖使用語句 
本身作為關鍵 字, 訪問方案和相應的語句存儲在緩沖區中. 這樣就允許數據庫引擎 
對以前執行過的語句所使用 的訪問方案進行重用. 舉個例子來說, 如果我們向數據 
庫發送這樣一條語句 "select a, b from t where c = 2", 計算好的訪問方案就放入緩沖 
區了. 如果我們以后再使用同樣的語 句, 數據庫就能重用以前的訪問方案, 這樣就 
能節省 CPU. 

但是要注意, 整條語句是一個關鍵字. 例如, 如果我們后來發送的語句是 "select a,b 
from t where c = 3", 那么就不會找出以前的訪問方案. 因為 "c=3" 和 "c=2" 是不一 
樣的. 所以, 例如: 

     For(int I = 0; I < 1000; ++I) 
{ 
PreparedStatement ps = conn.prepareStatement("select a,b from t 
where c = " + I); 
ResultSet rs = Ps.executeQuery(); 
Rs.close(); 
Ps.close(); 
} 

這里不會用到緩沖. 每次循環向數據庫發送一條不同的 SQL 語句. 每次循環都重新 
計算新的訪問 方案, 用這種方法我們會浪費大量的 CPU 周期. 但是, 看看下一個片 
段: 

PreparedStatement ps = conn.prepareStatement("select a,b from t where c 
= ?"); 
For(int I = 0; I < 1000; ++I) 
{ 
ps.setInt(1, I); 
ResultSet rs = ps.executeQuery(); 
Rs.close(); 
} 
ps.close(); 

這樣就會高效得多. 發送給數據庫的語句在 sql 中使用 '?' 符號來參數化. 這意味著 
每次循環 發送的是同一條語句, 在 "c=?" 部分帶有不同的參數. 這樣就允許數據庫 
重用語句的訪問方案, 是程序在數據庫內部運行得更高效. 這基本上能使你的程序 
運行得更快, 或者使數據庫用戶能更多 地使用 CPU. 

PreparedStatement 和 J2EE 服務器 

當我們使用 J2EE 服務器的時候, 事情會變得更加復雜. 通常情況下, 一個預先準備 
好的語句 (prepared statement) 是和一個單獨的數據庫連接相關聯的. 當連接關閉時, 
語句就被丟棄 了. 一般來說, 一個胖客戶端應用程序在得到一個數據庫連接后會一 
直保持到程序結束. 它會使用 兩種方法創建所有的語句: 急切創建(eagerly) 或者 懶 
惰創建(lazily). Eagerly是說, 當程序啟動時全部創建. Lazily是說隨用隨創建. 急切 
的方法會在程序啟動時有些延時, 但是一旦程序啟動以后, 運行很好. 懶惰的方法啟 
動很快, 但是當程序運行時, 預先準備的語句在第一次使用是創建. 這就會造成性能 
不平衡, 知道所有的 語句都準備好了, 但是最終程序會和急切方法一樣快. 哪一種 
最好要看你需要的是快速啟動還是 均衡的性能. 

一個 J2EE 應用程序所帶來的問題就是它不能像這樣工作. 它只在一個請求的生存 
時間中保持一個 連接. 這意味著在他處理每一個請求時都會重新創建語句, 就不象 
胖客戶端只創建一次, 而不是每 個請求都創建那樣有效, 

當 J2EE 服務器給你的程序一個連接時, 并不是一個真正的連接, 而是一個經過包裝 
的. 你可以 通過查看那個連接的類的名字來檢驗一下. 它不是一個數據庫的 JDBC 
連接, 是你的服務器創建 的一個類. 通常, 如果你調用一個連接的 close 方法, 那么 
jdbc 驅動程序會關閉這個連接. 我們希望的是當 J2EE 應用程序調用 close 的時候, 
連接會返回到連接池中. 我們通過設計一個 代理的 jdbc 連接類來做這些, 但看起來 
就象是實際的連接. 當我們調用這個連接的任何方法時, 代理類就會把請求前遞給 
實際的連接. 但是, 當我們調用類似 close 的方法時, 并不調用實際 連接的 close 方 
法, 只是簡單地把連接返回給連接池, 然后把代理連接標記為無效, 這樣當它 被應 
用程序重新使用時, 我們會得到異常. 

包裝是非常有用的, 因為它幫助 J2EE 應用程序服務器實現者比較聰明地加上預先 
準備語句的 支持. 當程序調用 Connection.prepareStatement 時, 由驅動程序返回一 
個 PreparedStatement 對象. 當應用程序得到它時, 保存這個句柄, 并且在請求完成 
時, 關閉 請求之前關閉這個句柄. 但是, 在連接返回到連接池之后, 以后被同樣或者 
另一個應用程序重用時, 那么, 我們就理論上希望同樣的 PreparedStatement 返回給 
應用程序. 

J2EE PreparedStatement 緩沖 

J2EE PreparedStatement 緩沖由 J2EE 服務器內部的連接池管理器使用一個緩沖區 
來 實現. J2EE 服務器在連接池中保存一個所有數據庫的預先準備語句的一個列表. 
當一個程序 調用一個連接的 prepareStatement 方法時, 服務器先檢查這個語句是否 
已經有了, 如果 是, 相應的 PreparedStatement 就在緩沖區內, 就返回給應用程序, 如 
果不是, 請求就 會傳遞給 jdbc 驅動程序, 請求/預先準備語句 對象就會加入到緩沖 
區里. 

對于每一個連接我們需要一個緩沖區, 因為這是 jdbc 驅動程序的工作要求. 任何返 
回的 preparedStatement 都是針對這個連接的. 

如果我們要利用緩沖區的優勢, 要使用和前面相同的規則. 我們需要使用參數話的 
查詢, 這樣 它們就會和已經在緩沖區的某一個匹配. 大多數應用程序服務器都允許 
你調整緩沖區的大小. 

概要 

總之, 對于預先準備語句, 我們應該使用參數化的查詢. 這樣允許數據庫重用已經存 
在的訪問 方案, 從而減輕數據庫的負擔. 這樣的緩沖區是這個數據庫范圍的, 所以 
你可以安排你所有的 應用程序, 使用相似的參數化的 SQL, 就會提高這樣的緩沖區 
方案的效率, 因為一個應用程序 可以使用另一個應用程序的語句. 一個應用服務器 
的優勢也在于此, 因為訪問數據庫的邏輯應該 集中在數據訪問層上(OR 映射, 實體 
bean 或者直接 JDBC). 

最后, 預先準備語句的正確使用也讓你利用應用程序服務器的預先準備語句的緩沖 
區的好處. 會提高你的應用程序的性能, 因為應用程序通過對以前的預先準備語句 
的重用減少 JDBC 驅動程序調用的次數. 這樣使它能和胖客戶端的效率競爭, 并且 
去掉了不能保持一個長期 連接的壞處. 

如果你使用參數化的預先準備語句, 就可以提高數據庫和你的服務器端的代碼的效 
率. 這些提高 都會允許你的應用程序提高性能. 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产亚洲精品aa| 日本韩国欧美一区二区三区| 日韩欧美国产不卡| 麻豆国产精品视频| 亚洲高清免费视频| 欧美色精品在线视频| 亚洲图片欧美视频| 日韩午夜电影av| 国产盗摄女厕一区二区三区| 国产精品久久久久久久久快鸭 | 综合久久一区二区三区| 91网站在线播放| 午夜精品123| 久久久美女毛片| 91色九色蝌蚪| 蜜桃精品在线观看| 欧美国产欧美亚州国产日韩mv天天看完整 | 久久这里只有精品首页| 成人性生交大片免费看在线播放| 亚洲欧美另类综合偷拍| 欧美一卡2卡3卡4卡| 国产成人超碰人人澡人人澡| 亚洲精品视频一区| 精品三级在线看| 色狠狠av一区二区三区| 麻豆精品在线视频| 亚洲视频免费在线观看| 日韩精品一区二区三区在线| jlzzjlzz亚洲女人18| 天天色天天爱天天射综合| 国产亚洲一区二区在线观看| 欧美色视频在线| 国产jizzjizz一区二区| 视频一区二区中文字幕| 国产欧美精品一区| 3d动漫精品啪啪一区二区竹菊 | 日本一区二区三区久久久久久久久不 | 日韩欧美不卡在线观看视频| av亚洲精华国产精华| 麻豆精品蜜桃视频网站| 一区二区三区中文字幕电影| 久久精品无码一区二区三区| 欧美日韩国产一区| 99re热这里只有精品视频| 麻豆精品久久精品色综合| 亚洲国产一区视频| 国产精品久久久久aaaa樱花| www日韩大片| 欧美另类变人与禽xxxxx| 色哟哟精品一区| 风间由美一区二区av101| 久久99热狠狠色一区二区| 亚洲成人av在线电影| 亚洲欧美一区二区三区久本道91 | 开心九九激情九九欧美日韩精美视频电影| ...中文天堂在线一区| 久久亚洲一区二区三区四区| 日韩区在线观看| 制服丝袜亚洲色图| 欧美视频在线一区二区三区 | 日本三级韩国三级欧美三级| 亚洲欧美激情小说另类| 国产精品毛片久久久久久| 国产视频一区二区在线| 精品国产露脸精彩对白| 欧美一级黄色片| 欧美日本不卡视频| 欧美日韩大陆在线| 欧美日韩电影在线播放| 欧美卡1卡2卡| 欧美老肥妇做.爰bbww视频| 欧美性色黄大片| 欧美日韩一区二区三区视频| 欧美日韩激情在线| 欧美精品久久99| 欧美一区二区三区影视| 欧美成人一区二区三区片免费| 91麻豆精品久久久久蜜臀| 欧美精品第1页| 日韩亚洲欧美在线观看| 欧美v国产在线一区二区三区| 日韩欧美在线观看一区二区三区| 日韩欧美激情在线| 精品国产免费人成在线观看| 久久久久久免费毛片精品| 国产免费成人在线视频| 中文字幕日本乱码精品影院| 亚洲视频在线一区| 亚洲图片欧美一区| 日本aⅴ亚洲精品中文乱码| 老司机精品视频在线| 国产一区二区三区四区五区美女| 国产成人av一区二区三区在线| 国产精品一级片在线观看| 成人国产精品免费观看视频| 色天天综合色天天久久| 欧美日韩aaa| 欧美成人一区二区三区| 国产欧美一区二区精品忘忧草| 亚洲视频1区2区| 日本sm残虐另类| 国产精品白丝jk黑袜喷水| 色综合久久综合中文综合网| 在线观看91精品国产麻豆| 久久久午夜电影| 亚洲男女一区二区三区| 日产国产高清一区二区三区| 国产一区二区三区精品视频| 91首页免费视频| 欧美一区二区三区四区视频| 26uuu亚洲综合色欧美| 亚洲色图.com| 极品尤物av久久免费看| 成年人国产精品| 欧美一区二区三区免费大片 | 国产精品国产三级国产普通话蜜臀| 亚洲精品成人在线| 全国精品久久少妇| 99精品久久只有精品| 日韩精品在线看片z| 亚洲欧美日韩国产综合在线| 蜜臀久久99精品久久久久宅男| 成人免费视频免费观看| 欧美一区二区三区四区久久| 成人欧美一区二区三区白人| 蜜桃av噜噜一区二区三区小说| 91亚洲午夜精品久久久久久| 欧美大白屁股肥臀xxxxxx| 一区二区三区在线不卡| 国产精品亚洲成人| 欧美一区二区三区在线视频 | 国产成人免费高清| 在线播放日韩导航| 日韩毛片视频在线看| 黄页网站大全一区二区| 欧美日韩国产成人在线91| ㊣最新国产の精品bt伙计久久| 极品少妇xxxx偷拍精品少妇| 欧美日韩一区中文字幕| 中文字幕一区不卡| 国产麻豆精品视频| 日韩午夜精品视频| 亚洲国产一区二区三区青草影视| 99这里只有精品| 国产日韩欧美不卡| 国产一区二区三区视频在线播放| 欧美精品v国产精品v日韩精品 | 亚洲欧洲国产日本综合| 国产伦精品一区二区三区免费| 91精品国产福利在线观看| 亚洲国产精品麻豆| 在线观看国产一区二区| 国产精品动漫网站| 国产成人综合亚洲91猫咪| 精品国产在天天线2019| 美女一区二区视频| 日韩一级免费一区| 免费的国产精品| 欧美电影一区二区三区| 偷拍亚洲欧洲综合| 欧美精品xxxxbbbb| 日韩中文字幕不卡| 欧美日韩在线播放一区| 亚洲成在人线免费| 欧美剧在线免费观看网站| 亚洲高清免费视频| 欧美美女一区二区| 日本伊人午夜精品| 日韩精品在线网站| 国产麻豆视频一区二区| 国产日产欧美一区二区三区| 国产成人综合网站| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ原创 | 在线播放国产精品二区一二区四区| 一区二区免费在线| 欧美色电影在线| 男女男精品视频| 久久综合资源网| 成人av在线观| 亚洲一区免费视频| 欧美卡1卡2卡| 狠狠色丁香久久婷婷综| 国产精品网站一区| 99精品视频一区二区| 亚洲国产一区二区三区| 这里只有精品电影| 国产一区二区在线视频| 国产精品丝袜91| 欧美在线一区二区三区| 蜜乳av一区二区| 国产精品免费观看视频| 欧洲人成人精品| 久久成人av少妇免费| 中文天堂在线一区| 欧美性大战久久久| 韩国精品免费视频| 亚洲精品成a人| 日韩视频不卡中文| 岛国av在线一区| 亚洲第一综合色|