mybatis使用foreach踩坑及解決
mybatis使用foreach踩坑記錄
在使用fireach是最關(guān)鍵的是collection屬性
dao層:
單參數(shù)List和多參數(shù)的list
/*通過(guò)表名(日期)查詢(xún)*/
List<WagesInfoVo> selectWagesBySheet(List<String> sheetNameList);
/*通過(guò)用戶(hù)名+表名(日期)查詢(xún)*/
List<WagesInfoVo> selectByPerson(@Param("personNumber") String personNumber,
@Param("sheetNameList") List<String> sheetNameList);xml文件中foreach屬性的選擇
- 單參數(shù)的collection=“list”
- 多參數(shù)的collection=“sheetNameList”,sheetNameList為傳入的參數(shù)
<select id="selectWagesBySheet" parameterType="java.lang.String"
resultType="com.zl.wagesmanage.vo.wages.WagesInfoVo">
select person_number as personNumber,user_name as userName,
account_number as accountNumber,wage as wage,other_money as otherMoney,reward as reward,
should as should,old as old,medical as medical,lose_job as loseJob,trade_union as tradeUnion,
housing_fund as housingFund,take_off as takeOff,total as total,sheet_name as sheetName
from tt_excel_wages
where sheet_name in
<foreach collection="list" index="index" item="sheetNameList"
open="(" separator="," close=")">
#{sheetNameList}
</foreach>
</select>
<select id="selectByPerson" parameterType="java.lang.String"
resultType="com.zl.wagesmanage.vo.wages.WagesInfoVo">
select person_number as personNumber,user_name as userName,
account_number as accountNumber,wage as wage,other_money as otherMoney,reward as reward,
should as should,old as old,medical as medical,lose_job as loseJob,trade_union as tradeUnion,
housing_fund as housingFund,take_off as takeOff,total as total,sheet_name as sheetName
from tt_excel_wages
where person_number=#{personNumber}
and sheet_name in
<foreach collection="sheetNameList" index="index" item="sheetNameList"
open="(" separator="," close=")">
#{sheetNameList}
</foreach>
</select>controller層傳參說(shuō)明
這里我都是使用@RequestParam進(jìn)行傳參,列舉了get請(qǐng)求和post請(qǐng)求
/*通過(guò)excel的表名進(jìn)行查詢(xún)*/
@GetMapping(value = "getWages")
@ResponseBody
public ResponseVO getWages(@RequestParam("sheetNames")List<String> sheetNames){
try {
WagesRequestVo wagesRequestVo =new WagesRequestVo();
//獲取數(shù)據(jù)
List<WagesInfoVo> wagesInfoVos = wagesServer.getWagesBySheet(sheetNames);
wagesRequestVo.setWagesInfoVoList(wagesInfoVos);
if (wagesInfoVos==null){
return ResponseVO.appFail("查詢(xún)失敗");
}
return ResponseVO.success(wagesRequestVo);
}catch (Exception e){
return ResponseVO.serviceFail(e.getMessage());
}
}
/*通過(guò)用戶(hù)名和表名進(jìn)行查詢(xún)*/
@PostMapping("getWagesByNumber")
@ResponseBody
public ResponseVO getWagesByNumber(@RequestParam("personNumber")String personNumber,
@RequestParam("sheetName[]")List<String> sheetName){
try {
WagesRequestVo wagesRequestVo =new WagesRequestVo();
//獲取數(shù)據(jù)
List<WagesInfoVo> wagesInfoVos = wagesServer.getWagesByPerson(personNumber,sheetName);
wagesRequestVo.setWagesInfoVoList(wagesInfoVos);
if (wagesInfoVos==null){
return ResponseVO.appFail("查詢(xún)失敗");
}
return ResponseVO.success(wagesRequestVo);
}catch (Exception e){
return ResponseVO.serviceFail(e.getMessage());
}
}postman截圖
- get請(qǐng)求傳參方式:

- post傳參方式:

總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
MyBatis-Plus 修改和添加自動(dòng)填充時(shí)間方式
這篇文章主要介紹了MyBatis-Plus 修改和添加自動(dòng)填充時(shí)間方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-08-08
一場(chǎng)由Java中Integer引發(fā)的踩坑實(shí)戰(zhàn)
Java中的數(shù)據(jù)類(lèi)型分為基本數(shù)據(jù)類(lèi)型和復(fù)雜數(shù)據(jù)類(lèi)型int是前者而integer是后者(也就是一個(gè)類(lèi)),下面這篇文章主要給大家介紹了關(guān)于由Java中Integer引發(fā)的踩坑實(shí)戰(zhàn),需要的朋友可以參考下2022-11-11
Java畢業(yè)設(shè)計(jì)實(shí)戰(zhàn)之在線(xiàn)高中考試系統(tǒng)的實(shí)現(xiàn)
這是一個(gè)使用了java+SSM+Jsp+Mysql+Maven開(kāi)發(fā)的在線(xiàn)高中考試系統(tǒng),是一個(gè)畢業(yè)設(shè)計(jì)的實(shí)戰(zhàn)練習(xí),具有考試系統(tǒng)該有的所有功能,感興趣的朋友快來(lái)看看吧2022-02-02
java8如何用Stream查L(zhǎng)ist對(duì)象某屬性是否有重復(fù)
這篇文章主要介紹了java8如何用Stream查L(zhǎng)ist對(duì)象某屬性是否有重復(fù)的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-09-09
SpringBoot 開(kāi)發(fā)提速神器 Lombok+MybatisPlus+SwaggerUI
這篇文章主要介紹了SpringBoot 開(kāi)發(fā)提速神器 Lombok+MybatisPlus+SwaggerUI,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-03-03
myBatis使用@GeneratedValue(generator?=?“...“,?strategy?=?
這篇文章主要介紹了myBatis使用@GeneratedValue(generator?=?“...“,?strategy?=?...)注解問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-07-07
Flowable數(shù)據(jù)庫(kù)表分類(lèi)及數(shù)據(jù)字典解析
這篇文章主要介紹了Flowable數(shù)據(jù)庫(kù)表分類(lèi)及數(shù)據(jù)字典解析,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-11-11

