mybatis使用foreach踩坑及解決
更新時間:2024年08月20日 09:07:53 作者:大佬喝可樂丶
這篇文章主要介紹了mybatis使用foreach踩坑及解決,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
mybatis使用foreach踩坑記錄
在使用fireach是最關鍵的是collection屬性
dao層:
單參數List和多參數的list
/*通過表名(日期)查詢*/
List<WagesInfoVo> selectWagesBySheet(List<String> sheetNameList);
/*通過用戶名+表名(日期)查詢*/
List<WagesInfoVo> selectByPerson(@Param("personNumber") String personNumber,
@Param("sheetNameList") List<String> sheetNameList);xml文件中foreach屬性的選擇
- 單參數的collection=“list”
- 多參數的collection=“sheetNameList”,sheetNameList為傳入的參數
<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層傳參說明
這里我都是使用@RequestParam進行傳參,列舉了get請求和post請求
/*通過excel的表名進行查詢*/
@GetMapping(value = "getWages")
@ResponseBody
public ResponseVO getWages(@RequestParam("sheetNames")List<String> sheetNames){
try {
WagesRequestVo wagesRequestVo =new WagesRequestVo();
//獲取數據
List<WagesInfoVo> wagesInfoVos = wagesServer.getWagesBySheet(sheetNames);
wagesRequestVo.setWagesInfoVoList(wagesInfoVos);
if (wagesInfoVos==null){
return ResponseVO.appFail("查詢失敗");
}
return ResponseVO.success(wagesRequestVo);
}catch (Exception e){
return ResponseVO.serviceFail(e.getMessage());
}
}
/*通過用戶名和表名進行查詢*/
@PostMapping("getWagesByNumber")
@ResponseBody
public ResponseVO getWagesByNumber(@RequestParam("personNumber")String personNumber,
@RequestParam("sheetName[]")List<String> sheetName){
try {
WagesRequestVo wagesRequestVo =new WagesRequestVo();
//獲取數據
List<WagesInfoVo> wagesInfoVos = wagesServer.getWagesByPerson(personNumber,sheetName);
wagesRequestVo.setWagesInfoVoList(wagesInfoVos);
if (wagesInfoVos==null){
return ResponseVO.appFail("查詢失敗");
}
return ResponseVO.success(wagesRequestVo);
}catch (Exception e){
return ResponseVO.serviceFail(e.getMessage());
}
}postman截圖
- get請求傳參方式:

- post傳參方式:

總結
以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
一場由Java中Integer引發(fā)的踩坑實戰(zhàn)
Java中的數據類型分為基本數據類型和復雜數據類型int是前者而integer是后者(也就是一個類),下面這篇文章主要給大家介紹了關于由Java中Integer引發(fā)的踩坑實戰(zhàn),需要的朋友可以參考下2022-11-11
Java畢業(yè)設計實戰(zhàn)之在線高中考試系統(tǒng)的實現(xiàn)
這是一個使用了java+SSM+Jsp+Mysql+Maven開發(fā)的在線高中考試系統(tǒng),是一個畢業(yè)設計的實戰(zhàn)練習,具有考試系統(tǒng)該有的所有功能,感興趣的朋友快來看看吧2022-02-02
SpringBoot 開發(fā)提速神器 Lombok+MybatisPlus+SwaggerUI
這篇文章主要介紹了SpringBoot 開發(fā)提速神器 Lombok+MybatisPlus+SwaggerUI,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-03-03
myBatis使用@GeneratedValue(generator?=?“...“,?strategy?=?
這篇文章主要介紹了myBatis使用@GeneratedValue(generator?=?“...“,?strategy?=?...)注解問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-07-07

