隨筆-59  評論-31  文章-0  trackbacks-0

          1、#可以進行預編譯,進行類型匹配,#變量名#? 會轉化為 jdbc的?類型

          ?? $不進行數據類型匹配,$變量名$就直接把$name$替換為 name的內容

          ?? 例如:
          ????select * from tablename where id = #id#,假設id的值為12,其中如果數據庫字段id為字符型,那么#id#表示的就是'12',如果id為整型,那么#id#就是 12

          ??? 會轉化為jdbc的select * from tablename where id=?,把?參數設置為id的值

          ????select * from tablename where id = $id$,如果字段id為整型,Sql語句就不會出錯,但是如果字段id為字符型,
          ????那么Sql語句應該寫成 select * from table where id = '$id$'
          ????

          3、#方式能夠很大程度防止sql注入.
          4、$方式無法方式sql注入.
          5、$方式一般用于傳入數據庫對象.例如傳入表名.
          6、所以ibatis用#比$好,一般能用#的就別用$.

          另外,使用##可以指定參數對應數據庫的類型

          如:

          select * from tablename where id =#id:number#?

          在做in,like 操作時候要特別注意

          mysql: select * from user where user_name like concat('%',#name#,'%')oracle: select * from user where user_name like '%'||#name#||'%'sql server: select * from user where user_name like '%'+#name#+'%'
          posted on 2011-11-17 22:15 RoyPayne 閱讀(618) 評論(0)  編輯  收藏 所屬分類: ibatis

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 马公市| 弥勒县| 阿尔山市| 鹤壁市| 正蓝旗| 大邑县| 高陵县| 图片| 宁国市| 进贤县| 宁明县| 黔西县| 仙桃市| 青州市| 左权县| 孝义市| 乌兰县| 罗甸县| 靖宇县| 托克托县| 凤山市| 中牟县| 乌兰察布市| 长宁县| 静海县| 邹平县| 泽州县| 云安县| 四子王旗| 牡丹江市| 金山区| 泸定县| 高雄县| 布拖县| 眉山市| 达尔| 建瓯市| 新蔡县| 中西区| 隆子县| 大石桥市|