云自無心水自閑

          天平山上白云泉,云自無心水自閑。何必奔沖山下去,更添波浪向人間!
          posts - 288, comments - 524, trackbacks - 0, articles - 6
            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

          在iBatis中,對于in子句的標(biāo)準(zhǔn)做法是采用動態(tài)sql來解決的。具體方法大致是:Java代碼傳入一個List或者數(shù)組,然后在sqlMapConfig映射中使用iterate循環(huán)取這個變量,動態(tài)地生成sql語句。
          這個標(biāo)準(zhǔn)解法的缺點是,使用起來比較麻煩
          1. 需要在sqlMapConfig中使用動態(tài)語句
          2. 需要傳入一個Iterable的變量
          對于這個問題,我使用了一個偷懶的辦法,就是使用$標(biāo)記。
          在iBatis中,普通的變量,比如:v,是使用#號,在這個例子中,就是:#v#。
          這樣,iBatis會使用prepareStatement,并對變量進(jìn)行變量綁定。
          而$符號是簡單替代的用法,在數(shù)據(jù)庫的執(zhí)行效率上要比前一種差。但優(yōu)點就是簡單方便。
          比如:
          SELECT * FROM  emp WHERE emp_no in ($empString$);
          而empString的值就是1, 2, 3. 在Log中,可以看到,Sql語句就是:SELECT * FROM emp WHERE emp_no in (1,2,3)


          評論

          # re: iBatis動態(tài)Sql解決In子句的替代方法  回復(fù)  更多評論   

          2008-04-08 01:45 by jarit
          用$等于連接SQL,不好,還要解決敏感字符問題

          # re: iBatis動態(tài)Sql解決In子句的替代方法  回復(fù)  更多評論   

          2009-12-17 21:49 by 團(tuán)派家園
          3.0比2.0更好了。

          # re: iBatis動態(tài)Sql解決In子句的替代方法  回復(fù)  更多評論   

          2010-11-10 16:25 by 陳于喆
          小心sql注入
          主站蜘蛛池模板: 拜城县| 荣昌县| 墨江| 徐汇区| 长汀县| 富川| 丰县| 崇信县| 安阳市| 康马县| 桐城市| 瑞金市| 西峡县| 延津县| 无棣县| 太湖县| 宁化县| 陵川县| 临安市| 九江县| 奉贤区| 新竹县| 内江市| 大安市| 中西区| 林芝县| 汝南县| 乌什县| 扬中市| 彰化县| 宜丰县| 合阳县| 登封市| 治多县| 金山区| 万年县| 开封县| 石渠县| 玛曲县| 高邑县| 喀喇沁旗|