MyBatis如何進(jìn)行雙重foreach循環(huán)
進(jìn)行雙重foreach循環(huán)
mapname是一個(gè)Map<String,Map<String,Object>> 對(duì)象
<foreach collection="mapname" index="key1" item="value1" separator=",">
?? ?<foreach collection="value1" index="key2" item="value2" separator=",">
?? ??? ?#{key1},
?? ??? ?#{key2},
?? ??? ?#{value2}
?? ?</foreach>
</foreach>使用場(chǎng)景
比如說(shuō)一個(gè)付款人下面對(duì)應(yīng)的運(yùn)單的金額,那么key1就是付款人編號(hào),key2是運(yùn)單編號(hào),value2是分?jǐn)偟慕痤~
mybatis foreach循環(huán),傳入多個(gè)參數(shù)
上代碼
controller:
@RequestMapping(value = "/findPage", method = RequestMethod.POST)
@ResponseBody
public Object findPage(@RequestParam(required=false) String jobCategory,@RequestParam(required=false) String ids,@RequestParam(required=false) String cities) {
try {
List<Integer> listJob = new ArrayList<Integer>();
List<Integer> listIds = new ArrayList<Integer>();
List<String> listCities = new ArrayList<String>();
//按照城市名稱和工種查詢
if(StringUtils.isNotBlank(jobCategory) && StringUtils.isNotBlank(cities)){
String[] temp = jobCategory.split(",");
String[] cityTemp = cities.split(",");
for(int i=0;i<temp.length;i++){
listJob.add(Integer.valueOf(temp[i]));
}
for(int i=0;i<cityTemp.length;i++){
listCities.add(cityTemp[i]);
}
List<WebsitesJob> list = jobService.findPage(listJob, listIds, listCities);
return new ExtGridReturn(list.size(), list);
}
//按照工種查詢
if(StringUtils.isNotBlank(jobCategory)){
String[] temp = jobCategory.split(",");
for(int i=0;i<temp.length;i++){
listJob.add(Integer.valueOf(temp[i]));
}
}
//按照職位名稱查詢
if(StringUtils.isNotBlank(ids)){
String[] temp = ids.split(",");
for(int i=0;i<temp.length;i++){
listIds.add(Integer.valueOf(temp[i]));
}
}
//按照城市查詢
if(StringUtils.isNotBlank(cities)){
String[] temp = cities.split(",");
for(int i=0;i<temp.length;i++){
listCities.add(temp[i]);
}
}
List<WebsitesJob> list = jobService.findPage(listJob, listIds, listCities);
return new ExtGridReturn(list.size(), list);
} catch (Exception e) {
LOGGER.error("分頁(yè)獲取信息出錯(cuò)", e);
return new ExceptionReturn(e);
}
}mapper
/**
? ? ?* 描述:根據(jù)工種查詢列表
? ? ?* @param jobCategorys
? ? ?* @return
? ? ?*/
? ? List<WebsitesJob> findPage(@Param("jobCategorys") List<Integer> jobCategorys,@Param("ids") List<Integer> ids,@Param("workPlace") List<String> workPlace);xml
<!-- 前臺(tái)查詢列表 -->
<select id="findPage" resultType="cn.edu.hbcf.plugin.websites.pojo.WebsitesJob">
select n.ID id,
n.NAME name,
n.WORKPLACE workPlace,
n.JOBCATEGORY jobCategory,
n.SALARY salary,
n.RESPONSIBILITIES responsibilities,
n.REQUIREMENTS requirements,
n.ISHOT isHot,
n.UPDATEDATE updateDate,
n.UPDATEUSER updateUser,
u.real_name updateName
from websites_job n
left join base_users u on n.updateUser = u.account
<where>
<if test="jobCategorys.size()!=0">
or n.jobCategory in
<foreach collection="jobCategorys" index="index" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</if>
<if test="ids.size()!=0">
or n.id in
<foreach collection="ids" item="item" index="index" open="(" separator="," close=")">
#{item}
</foreach>
</if>
<if test="workPlace.size()!=0">
or n.WORKPLACE in
<foreach collection="workPlace" item="item" index="index" open="(" separator="," close=")">
#{item}
</foreach>
</if>
</where>
order by n.ISHOT,n.ID desc
</select>以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- MyBatis中的循環(huán)插入insert foreach問(wèn)題
- mybatis foreach 循環(huán) list(map)實(shí)例
- mybatis多個(gè)區(qū)間處理方式(雙foreach循環(huán))
- MyBatis實(shí)現(xiàn)批量插入數(shù)據(jù),多重forEach循環(huán)
- mybatis錯(cuò)誤之in查詢?<foreach>循環(huán)問(wèn)題
- MyBatis中使用foreach循環(huán)的坑及解決
- mybatis insert foreach循環(huán)插入方式
- MyBatis之foreach標(biāo)簽的用法及多種循環(huán)問(wèn)題
相關(guān)文章
Jpa中Specification的求和sum不生效原理分析
這篇文章主要為大家介紹了Jpa中Specification的求和sum不生效原理示例分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-08-08
MybatisGenerator文件生成不出對(duì)應(yīng)文件的問(wèn)題
本文介紹了使用MybatisGenerator生成文件時(shí)遇到的問(wèn)題及解決方法,主要步驟包括檢查目標(biāo)表是否存在、是否能連接到數(shù)據(jù)庫(kù)、配置生成器的路徑等,通過(guò)在項(xiàng)目結(jié)構(gòu)中引入相應(yīng)的jar包,并在GeneratorSqlmap.java文件中運(yùn)行,可以成功生成對(duì)應(yīng)的文件2025-01-01
Eclipse項(xiàng)目有紅感嘆號(hào)的解決方法
這篇文章主要為大家詳細(xì)介紹了Eclipse項(xiàng)目有紅感嘆號(hào)的解決方法,給出了Eclipse項(xiàng)目有紅感嘆號(hào)的原因,以及如何解決?,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-04-04
關(guān)于Elasticsearch封裝公共索引增刪改查
索引是Elasticsearch中存儲(chǔ)數(shù)據(jù)的邏輯單元,類似于關(guān)系數(shù)據(jù)庫(kù)中的表,它包含多個(gè)文檔,每個(gè)文檔都是一個(gè)結(jié)構(gòu)化的JSON數(shù)據(jù)格式,在實(shí)際應(yīng)用中,索引的使用與配置可以依據(jù)不同的方案進(jìn)行,例如在Spring Boot項(xiàng)目中,可以選擇自動(dòng)配置或者手動(dòng)編寫配置類2024-10-10

