轉載自:http://yhjhappy234.blog.163.com/blog/static/31632832200982785927250/
作者:一線天色
作者博客:http://yhjhappy234.blog.163.com/
ibatis輸入多個參數軟件開發 2009-09-27 08:59:27 閱讀365 評論2 字號:大中小
在ibatis中,會發現其輸入參數只能有一個,於是當出現需要進行多個輸入參數的時候,就要想點辦法了,我看到的有以下兩種比較好的方法能夠解決這個問題
1) 用String代替
<select id="checkLogin" parameterClass="java.lang.String" resultClass="java.lang.Integer">
SELECT count(*) AS value FROM userinfo WHERE $sql$
</select>
比如如上的map statement代碼中,將輸入的參數設置爲String類型,而在select語句中直接使用該String,於是用戶可以在Java程序代碼中手工植入需要匹配的參數。
String sql = "uid = '" + username + "' and pwd='" + password + "'";
Integer r = (Integer) sqlMap.queryForObject("checkLogin", sql);
這個方法很簡單,但是弊端也很多。首先得需要用戶自己手動寫sql語句代碼在java中,這與ibatis的本質要將數據層的操作和業務邏輯操作分隔開來是違背的。其次,這個辦法可能會被利用造成sql injection的問題。比如在sql語句的最後加上一句;drop some table。這樣的結果顯而易見,就是災難性的。
2)用 Map
<select id="checkLogin2" parameterClass="java.util.Map" resultClass="java.lang.Integer">
SELECT count(*) AS value FROM userinfo WHERE uid=#uid# and pwd=#pwd#
</select>
這種辦法顯得要清楚的很多,也不需要自己手動編寫sql到java之中。
Map map=new HashMap();
map.put("uid", username);
map.put("pwd", password);
Integer r = (Integer) sqlMap.queryForObject("checkLogin2", map);
在java中首先生成需要的map,然後作爲輸入參數傳入即可。這個方法應該是比較好的,值得推薦。
3)也有人採用根據需要編寫javaBean的方法,但是這個方法的弊病在於如果你的邏輯操作涉及到很多的不同的屬性的組合,你就會浪費很多資源去生成各種各樣的bean。
【轉】ibatis 多個參數的查詢
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章
Tomcat內存CPU暴漲不降,絕對不是噱頭
iteye_13810
2018-09-13 05:03:28
IE對height=0的看不懂的處理
iteye_13810
2018-09-13 05:03:28
struts2:UEditor插入圖片,上傳失敗,顯示差號,沒有錯誤信息
iteye_13810
2018-09-07 14:09:37
關於同步的一道面試題
iteye_13810
2018-08-30 14:36:20
Maven + SpringMVC + Mybatis【絕非原創,單純整理】【二】
iteye_13810
2018-08-30 14:35:37
BS 頁面刷新,圖片不變的解決辦法
iteye_13810
2018-08-30 14:35:29
Maven + SpringMVC + Mybatis【絕非原創,單純整理】【四】
iteye_13810
2018-08-30 14:35:24
Maven + SpringMVC + Mybatis【絕非原創,單純整理】【三】
iteye_13810
2018-08-30 14:35:23
發現mysql一個神奇的問題
iteye_13810
2018-08-30 14:35:08
Struts2下<s:textfield>輸出日期格式
iteye_13810
2018-08-30 14:35:08
java學習目標
iteye_13810
2018-08-30 14:35:06
Maven + SpringMVC + Mybatis【絕非原創,單純整理】【一】
iteye_13810
2018-08-30 14:35:05
struts2 的s:if用法1-與request中的對象比較值
iteye_13810
2018-08-30 14:35:05
MyEclipse安裝插件未響應
iteye_13810
2018-08-30 14:35:03
Maven + SpringMVC + Mybatis【絕非原創,單純整理】【五】
iteye_13810
2018-08-30 14:35:02
24小時熱門文章