<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    最開始 我在程序里使用SQL訪問數據庫時,都是直接用“+”將字段值嵌到SQL中。?

    String?sql? = ? " select?s.name?from?student?s?where?s.id=' " ? + ?sId? + ? " ' ";


    后來我開始使用PreparedStatement,在SQL里使用“?”標記參數,然后用setXXX方法給參數賦值。當時只知道這樣用是因為有setDate,setTimeStamp這些用“+”連接不能直接嵌入的值。

    感覺PreparedStatement在性能方面應該也能快點,可能DBMS會重用,但不明底層原理。

    這次《數據庫實現》課程終于讓我弄懂了:每個SQL語句都要通過 語法分析 -> 生成邏輯查詢計劃 -> 邏輯優化 -> 物理優化 等步驟生成具體的執行計劃,用PreparedStatement就可以生成一個執行計劃,以后只是參數改變(相當于執行計劃的執行環境改變),前面的四個步驟也會省略,從而提高了效率。

    如果一個SQL語句要被反復多次執行,或多用戶同時操作,則應選用PreparedStatement!



    版權所有 羅明
    posted on 2006-11-01 20:18 羅明 閱讀(1792) 評論(19)  編輯  收藏 所屬分類: JavaProgramTechStudyDatabase
    Comments
    • # re: 為什么用PreparedStatement而不是直接用"+"連接SQL語句?
      GoKu
      Posted @ 2006-11-12 10:34
      用參數傳遞的方式更安全,代碼也更易讀懂,速度也稍有提升  回復  更多評論   
    • # re: 為什么用PreparedStatement而不是直接用"+"連接SQL語句
      羅明
      Posted @ 2007-08-26 21:44
      還有一個原因,可能就是樓上說的安全吧^_^,今天剛發現的-_-!

      ******************************************
      評論人:liusoft 發表時間: Wed Dec 03 09:22:35 CST 2003
      千萬不要把參數值寫在SQL語句中

      如果你用 insert into table1 values(?,?,?);

      然后調用PreparedStatement.setFloat(3,234234235.234);

      就不會使得234234235.234變成2.34234235234E8字符串了
      *******************************************
      原評論見:http://www.javaresearch.org/article/10854.htm  回復  更多評論   
    • # re: 為什么用PreparedStatement而不是直接用"+"連接SQL語句
      傳世私服
      Posted @ 2008-05-31 22:31
      1936  回復  更多評論   
    • # re: 為什么用PreparedStatement而不是直接用"+"連接SQL語句
      傳奇世界私服
      Posted @ 2008-05-31 22:32
      1377  回復  更多評論   
    • # re: 為什么用PreparedStatement而不是直接用"+"連接SQL語句
      魔獸世界私服
      Posted @ 2008-05-31 22:32
      1497  回復  更多評論   
    • # re: 為什么用PreparedStatement而不是直接用"+"連接SQL語句
      魔獸世界私服
      Posted @ 2008-05-31 22:32
      6294  回復  更多評論   
    • # re: 為什么用PreparedStatement而不是直接用"+"連接SQL語句
      魔獸世界私服
      Posted @ 2008-05-31 22:33
      0183  回復  更多評論   
    • # re: 為什么用PreparedStatement而不是直接用"+"連接SQL語句
      魔獸世界私服
      Posted @ 2008-05-31 22:33
      2809  回復  更多評論   
    • # re: 為什么用PreparedStatement而不是直接用"+"連接SQL語句
      魔獸世界私服
      Posted @ 2008-05-31 22:33
      9272  回復  更多評論   
    • # re: 為什么用PreparedStatement而不是直接用"+"連接SQL語句
      魔獸世界私服
      Posted @ 2008-05-31 22:33
      6601  回復  更多評論   
    • # re: 為什么用PreparedStatement而不是直接用"+"連接SQL語句
      魔獸世界私服
      Posted @ 2008-05-31 22:33
      1074  回復  更多評論   
    • # re: 為什么用PreparedStatement而不是直接用"+"連接SQL語句
      魔獸私服
      Posted @ 2008-05-31 22:33
      6279  回復  更多評論   
    • # re: 為什么用PreparedStatement而不是直接用"+"連接SQL語句
      魔獸私服
      Posted @ 2008-05-31 22:34
      1367  回復  更多評論   
    • # re: 為什么用PreparedStatement而不是直接用"+"連接SQL語句
      魔獸私服
      Posted @ 2008-05-31 22:34
      3520  回復  更多評論   
    • # re: 為什么用PreparedStatement而不是直接用"+"連接SQL語句
      魔獸私服
      Posted @ 2008-05-31 22:34
      9155  回復  更多評論   
    • # re: 為什么用PreparedStatement而不是直接用"+"連接SQL語句
      魔獸私服
      Posted @ 2008-05-31 22:34
      7091  回復  更多評論   
    • # re: 為什么用PreparedStatement而不是直接用"+"連接SQL語句
      魔獸私服
      Posted @ 2008-05-31 22:34
      5462  回復  更多評論   
    • # re: 為什么用PreparedStatement而不是直接用"+"連接SQL語句
      魔獸私服
      Posted @ 2008-05-31 22:34
      0216  回復  更多評論   
    • # Unikal'Nyi Kontent
      Unikal'Nyi Kontent
      Posted @ 2009-05-18 03:38
      Hi everyone. We require from buildings two kinds of goodness: first, the doing their practical duty well: then that they be graceful and pleasing in doing it.
      I am from Norway and also am speaking English, tell me right I wrote the following sentence: "So often when people encounter seo and want to start optimizing their sites they different consultants define seo differently.We offer affordable seo, ppc, search engine optimization, pay per click."

      :-) Thanks in advance. Helki.  回復  更多評論   
     
    主站蜘蛛池模板: 热久久精品免费视频| jizz免费观看| 久久久久久国产精品免费免费男同| 国产精品久久久久久久久久免费| 亚洲国产精品久久久久秋霞影院| 亚洲AV日韩AV永久无码绿巨人| 久久久久免费视频| 亚洲成A人片在线观看无码不卡 | 中文字幕在线日亚洲9| 最近2019中文字幕mv免费看| 亚洲中文无码卡通动漫野外| 日韩成人免费在线| 成人免费视频一区二区| 外国成人网在线观看免费视频| 亚洲欧洲在线观看| 免费看男女下面日出水来| 77777午夜亚洲| 四虎永久在线精品视频免费观看| 野花视频在线官网免费1| 国产成人99久久亚洲综合精品| 成人黄网站片免费视频| 亚洲手机中文字幕| 免费黄色毛片视频| 美女被免费网站91色| 久久精品国产亚洲AV高清热| h片在线播放免费高清| 亚洲av无码乱码国产精品fc2| 18禁美女黄网站色大片免费观看| 亚洲人成色在线观看| 亚洲无码日韩精品第一页| 99re6在线视频精品免费下载| 精品丝袜国产自在线拍亚洲| 亚洲成?Ⅴ人在线观看无码| 久9这里精品免费视频| 花蝴蝶免费视频在线观看高清版 | 亚洲欧洲精品在线| 久久成人a毛片免费观看网站| 亚洲国产日韩在线人成下载 | 无码国产精品一区二区免费3p| 亚洲国产系列一区二区三区 | 亚洲欧洲日产国产最新|