查询条件的方式,前端传参给后端控制层接收
-
查询条件存储:
const queryData = ref({wellnames: [], sfsk: ''});
-
xxxApi.js 中请求方法
pageData(query, currentPage, pageSize, successCallBack, errorCallBack) { const url = cjjscgService + "/pageYsDaa05"; axiosUtil.get(`${url}?page=${currentPage}&rows=${pageSize}`,{ ...query }, function (res) { if (typeof successCallBack == "function") { successCallBack(res); } }, errorCallBack) },
前端现场拼接,后端 map 获取
-
前端
xxxApi.pageData({wellnames: queryData.value.wellnames.join(','), sfsk: queryData.value.sfsk}, currentPage.value, pageSize.value, function (res){ 成功操作 }, ()=>{ 失败错误 })
- 用于将数组的所有元素连接成一个字符串,使用逗号作为分隔符
-
后端
public JsonMessage<DataPaging<Map>> xxx(@RequestParam Map argsMap, @RequestParam(value = "page", defaultValue = "1")int page, @RequestParam (value = "rows", defaultValue = "10")int rows){ return new JsonMessage().success(yyyService.getYyyList(argsMap,page,rows)); }
-
yyySerivce.java
public DataPaging<Map> getYyyList(Map argsMap, int page, int rows) { List<String> list = new ArrayList<>(); if(argsMap.get("wellnames") != null){ // 判断取出 list = Arrays.asList(argsMap.get("wellnames").toString().split(",")); } argsMap.put("jhIds",list); PageRequest pageRequest = new PageRequest(page, rows, argsMap); return mybatisRepository.selectPaging(NAMESPACE + ".getYyyList", pageRequest); }
- 这里因为初始化时 wellnames 为
[]
,所以通过.join
后获取的是一个空字符串,由于argsMap.get("wellnames")
不是null
(而是一个空字符串),list
将被初始化为一个包含一个空字符串的列表[""]
,所以经过下面的 xml 后查询的是空(除非真有 JH 为空字符串的数据)
- 这里因为初始化时 wellnames 为
-
yyyMapper.xml
<if test="jhIds.size() > 0"> and JH in <foreach item="jh" index="index" collection="jhIds" open="(" close=")" separator=","> #{jh} </foreach> </if>
-
前端放一起,后端实体类接收
-
前端
xxxApi.pageData(queryData.value, currentPage.value, pageSize.value, function (res){ 成功操作 }, ()=>{ 失败错误 })
-
后端
public JsonMessage<DataPaging<查询获取的实体类>> xxx(pageParam param, @RequestParam (value = "page", defaultValue = "1")int page, @RequestParam (value = "rows", defaultValue = "10")int rows) { return new JsonMessage().success(yyyService.getYyyList(param, page, rows)); }
-
这里的 pageParam 实体类里就存着查询条件属性,包括
private List<String> wellnames;
-
yyyService.java
public DataPaging<查询获取的实体类> getYyyList(WellListPageParam param, int page, int rows) { if (param.getWellnames() == null) { param.setWellnames(Collections.singletonList("")); } PageRequest pageRequest = new PageRequest(page, rows, param); DataPaging<查询获取的实体类> goodsDataPaging = mybatisRepository.selectPaging(NAMESPACE + ".getYyyList", pageRequest); return goodsDataPaging; }
- 这里 null 的时候加个空字符串,就和上述第一种方法一样 sql 会添加上
and jh in
了
- 这里 null 的时候加个空字符串,就和上述第一种方法一样 sql 会添加上
-
yyyMapper.xml
<if test="wellnames.size() > 0"> and jh in <foreach collection="wellnames" item="item" open="(" separator="," close=")"> #{item} </foreach> </if>
-
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?