Ibatis里面用in寫SQL語句,問什么報下面的錯
ibatis sql in 操作(iterate屬性)
1、使用iterate屬性,status為數組。
<isNotNull property="status">
<![CDATA[ status in ]]>
<iterate property="status" conjunction="," open="(" close=")">
#status[]#
</iterate>
</isNotNull>
2、使用$,但這種寫法存在一定的風險,可能會引起sql注入。
SELECT * FROM test WHERE status in ($status$);
使用ibatis進行查詢,我想查詢一個字段有多個值得時候的結果,sql語
從你的dao層傳值過來。因為是多個變量,所以要用map傳。
ibatis配置文件中寫:
select * from eadept ea where * in (#id1#,#id2#,#id3#,#id4#)。
dao層里面用map封裝:
*("id1","001008");
*("id2","001009");
*("id3","001010");
*("id4","001007");
然后把map傳過去就行。試試把!希望對你有幫助!
Ibatis in語句問題 急
private Long objectIds;
。..set/get
NewsDO news=new NewsDO();
*ectIds().add(0l);??這樣怎么添加的
<iterate property="objectIds" conjunction="," open="(" close=")">
#value[]#
</iterate>
這里遍歷的必須是一個集合
需要使用iBATIS 寫一條語句 多條件查詢
一般的判斷:
<isNotEmpty prepend="and" property="type">
*= #type#
</isNotEmpty>
模糊判斷
<isNotEmpty prepend="and" property="content">
*t like '%$content$%'
</isNotEmpty>
多關鍵字<iterate conjunction="and" property="content" close=",">
*t '%$Columns[].value$%'
</iterate>
isNotEmpty 的意思就是,如果字典里content這個值不為空,則輸出此標記對的內容, prepend="and" 的意思就是,它和上邊的條件用 and 連接
也就是說,你帶幾個條件,他就會輸出幾個條件。否則它不會輸出任何條件,這就是ibatis的靈活之處。
假如字典里有兩個值,分別為(key=type,value=數學)(key=content,value=王)
<isNotEmpty prepend="and" property="type">
*= #type#
</isNotEmpty>
<isNotEmpty prepend="and" property="content">
*t like '%$content$%'
</isNotEmpty>
最后他會輸出:and *='數學' and *t like '%王'
ibatis 模糊查詢語句
select * from table1 where name like '%$name$%'
2) 使用連接符。不過不同的數據庫中方式不同。
mysql:
select * from table1 where name like concat('%', #name#, '%')
oracle:
select * from table1 where name like '%' || #name# || '%'
sql server:
select * from table1 where name like '%' + #name# + '%'
關于 ibatis 里的 sql 語句
<select id="selectUser" resultClass="*p">
SELECT *_id AS "vkey",
*ment_id AS "vdesc"
FROM user d
<dynamic>
<isNotEmpty prepend=" WHERE " property="loginId">
*_id LIKE #loginId#
</isNotEmpty>
</dynamic>
ORDER BY *_id
</select>
SQL in查詢語句
在數據庫中有一個pzdz 這是個字段嗎?
里面的是數字組成的字符串
是這種格式嗎?
pzdz
1,3,5,2
3,6,15,17
select * from table where pzdz like('aa,%') or pzdz like('%,aa') or pzdz like('%,aa,%') or pzdz='aa';
考慮到了
pzdz
。,aa,。
aa,。
。.,aa
aa
四種情況
笨辦法
有區別的 你測試吧
轉載請注明出處華閱文章網 » ibatisin查詢語句