Mybatis使用map参数查询

您所在的位置:网站首页 mybatis参数为map Mybatis使用map参数查询

Mybatis使用map参数查询

#Mybatis使用map参数查询| 来源: 网络整理| 查看: 265

在这里插入图片描述

Mybatis使用map参数查询,本文介绍两种方式:

以Map为参数直接查询。

以分页对象中的Map作为参数查询。

第一种:Map为参数直接查询:

查询参数 :

Map paramMap = new HashMap(); paramMap.put("begTime", begTime); paramMap.put("endTime", endTime); paramMap.put("goodsname", allgoodsname); //查询方法 List idList = mainMapper.selectMemberCard(paramMap);

Mapper层:

/** * 根据时间和商品型号查询会员id集合 * * @param paramMap * @return */ List selectMemberCard(Map paramMap);

Mapper.xml

SELECT customer_id AS customerId FROM main_order WHERE 1=1 and unix_timestamp(CHARGE_END_TIME) between unix_timestamp(#{begoTime}) and unix_timestamp(#{endgoTime}) and goodsname like CONCAT('%','${goodsname}','%')

由于Mapper层没有使用@Param注解,所以在XMl直接去map里的参数名称即可取到值

2. 第二种 分页对象中的Map作为参数查询:

查询参数 (所有的查询参数都放到分页对象的Map集合中) :

Map paramMap = new HashMap(); paramMap.put("begTime", begTime); paramMap.put("endTime", endTime); //分页查询会员信息 Page pages = new Page(); pages.setLimit(exportTemplateService.getMaxExportCount()); pages.setOffset(0); pages.setParamMap(paramMap); List cardList = cardInfoMapper.selectcardListByValue(pages);

Pages分页实体对象

public class Page implements Serializable { private static final long serialVersionUID = -3323321457300243220L; /** 总记录数 */ private long total; /** 当前页对应的记录列表 */ private List rows; /** 分页查询条件对应的参数Map */ private Map paramMap; /** 排序字符串 */ private String orderBy; /**一次取多少条**/ private int limit; /**从第几条开始去**/ private int offset;

Mapper层:

/** * * 根据会员开卡时间查询会员卡信息 * @param page * @return */ List selectExcelListByValue( @Param("page") Page page);

Mapper.xml

SELECT FROM membershipcardinfo WHERE 1 = 1 and unix_timestamp(CREATE_TIME) between unix_timestamp('${page.paramMap.begTime}') and unix_timestamp('${page.paramMap.endTime}')

由于使用@Param注解,所以接收参数时先要找到注解的参数名page,然后找到page对象里的map集合,然后取集合中的某个参数。即page.paramMap.begTime

结束,欢迎反馈。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3