動(dòng)態(tài)SQL 集合條件查詢 foreach

查詢學(xué)號(hào)在某幾個(gè)學(xué)號(hào)內(nèi)的學(xué)生
查詢員工編號(hào)在什么范圍內(nèi)的員工信息

需要對(duì)集合做遍歷:

foreach (在實(shí)現(xiàn)in 語(yǔ)句查詢時(shí)有用:循環(huán)傳入?yún)?shù))

select * from t_blog where id in
<foreach collection=“ids” item="item" open="(" separator=",“ close=")">

{item}

</foreach>

collection表示pojo中集合屬性的名稱,item為遍歷結(jié)果聲明一個(gè)變量。
open:遍歷開(kāi)始要拼接的字符串,close遍歷結(jié)束拼接的字符串
separator遍歷中間需要拼接的字符串。

<select id="searchMyUserInfoByIn" parameterType="com.zyh.pojo.UserInfo" resultMap="BaseResultMap">
SELECT
<include refid="Base_Column_List"/>
FROM t_user_info
WHERE u_id
IN
<foreach collection="ids" item="id" open="(" close=")" separator=",">
#{id}
</foreach>
</select>

collection="ids" ids 是 UserInfo實(shí)體類里面的集合名稱屬性

image.png

映射文件對(duì)應(yīng)的 接口方法如下:
List<UserInfo> searchMyUserInfoByIn(UserInfo userInfo);

測(cè)試方法如下所示 :
@Test
public void testSearchMyUserInfoByIn(){
SqlSession sqlSession = SqlSessionFactoryUtilSingleL.getSqlSession();
UserInfoMapper mapper = sqlSession.getMapper(UserInfoMapper.class);
UserInfo user=new UserInfo();
List<Long> ids=new ArrayList<>();
ids.add(12l);
ids.add(13l);
ids.add(14l);
ids.add(15l);
ids.add(16l);
ids.add(17l);
user.setIds(ids);
List<UserInfo> userInfos = mapper.searchMyUserInfoByIn(user);
for (UserInfo userInfo : userInfos) {
System.out.println(userInfo);
}
sqlSession.commit();
sqlSession.close();
}

觀察輸出結(jié)果:


image.png

注意點(diǎn) : ArrayList 存入的數(shù)據(jù) 以及 實(shí)際查詢輸出的數(shù)據(jù) 。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容