[英]Iterate list of Objects in Ibatis
我有一個對象列表,我想迭代並訪問ibatis sql中的特定字段。
防爆。
public Class Student
{
String id;
String name;
}
我將作為參數傳遞給學生對象列表(列表(學生))
並迭代訪問每個對象bean的id。 我該怎么做呢?
foreach -tag是你正在尋找的。 例:
<select id="selectPostIn" resultType="domain.blog.Post">
SELECT *
FROM POST P
WHERE ID in
<foreach item="item" index="index" collection="list" open="(" separator="," close=")">
#{item}
</foreach>
</select>
有關詳細信息,請參閱用戶指南 ,“動態sql”一章。
順便說一句,iBatis不再開發並被凍結,它現在被稱為“MyBatis”,整個開發團隊從Apache轉移到新的MyBatis家 。
一個簡單的例子。
<select id="selectFewStudents" resultMap="MyMap" parameterClass="list">
select * from student_table where student_id in
<iterate open="(" close=")" conjunction=",">
#[]#
</iterate>
</select>
有關詳細信息,請參閱iBatis文檔 。
正如Sylar指出的那樣,java等價物就是
<select id="selectFewStudents" resultType="MyMap">
select * from student_table where student_id in
<foreach item="currentRow" index="rowNum" collection="list" open="(" separator="," close=")">
#{currentRow}
</foreach>
</select>
iBatis允許您在循環內使用變量項和索引。
嘗試類似的東西:
<select id="StudentsQry" parameterClass="list">
select * from STUDENTS where
( id, name ) in
<iterate open="(" close=")" conjunction="," >
( #[].id# , #[].name# )
</iterate>
<select>
其中id
和name
是Student
類的字段,我的parameterClass
是List<Student>
。
為我工作。
動態形成的sql看起來像:
select * from STUDENTS where ( id, name ) in ( (1,'a'), (2,'b') )
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.