<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 羅明 閱讀(1781) 評論(19)  編輯  收藏 所屬分類: JavaProgramTechStudy 、Database
    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.  回復  更多評論   
     
    主站蜘蛛池模板: 亚洲国产成人久久笫一页 | 亚洲精品动漫免费二区| 少妇无码一区二区三区免费| 国产中文在线亚洲精品官网| 羞羞视频网站免费入口| 四虎影视在线永久免费观看| 国产成人亚洲综合无| 国产一级大片免费看| 国产成人综合久久精品亚洲| 亚洲国产精品日韩专区AV| 一区二区免费在线观看| 亚洲人成人网站在线观看| 国产裸体美女永久免费无遮挡 | 亚洲精品卡2卡3卡4卡5卡区| 国产午夜精品免费一区二区三区 | 亚洲人成欧美中文字幕| 国产自产拍精品视频免费看 | 免费观看亚洲人成网站| 一级做a毛片免费视频 | 亚洲精品无码久久| 亚洲第一区精品日韩在线播放| 国产精品黄页免费高清在线观看| 亚洲AV无码一区二区乱子伦 | 亚洲AV午夜成人片| 久久www免费人成看片| 亚洲色大成WWW亚洲女子| 免费人成激情视频| 日本免费中文视频| 亚洲人成网站在线在线观看| 亚洲&#228;v永久无码精品天堂久久 | 午夜宅男在线永久免费观看网| 亚洲精品午夜国产va久久| 亚洲成?v人片天堂网无码| 拍拍拍无挡视频免费观看1000| 亚洲欧洲精品久久| 夜夜爽免费888视频| 国产日韩在线视频免费播放| 亚洲国产美女精品久久久久| 亚洲国产高清精品线久久| 四虎成年永久免费网站 | 亚洲国产夜色在线观看|