MyBatis-Plus自定义sql使用条件构造器和分页查询
2020-06-08 04:38
477 查看
- mapper类
@Mapper public interface RoomStatusDao extends BaseMapper<RoomStatusEntity> { IPage<RoomStatusEntity> queryRoomStatusList(IPage<RoomStatusEntity> page, @Param(Constants.WRAPPER) Wrapper<RoomStatusEntity> queryWrapper, @Param("date") Date date); }
- xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="xx.xxx.modules.app.dao.RoomStatusDao"> <select id="queryRoomStatusList" resultType="xx.xxx.modules.app.entity.RoomStatusEntity"> SELECT ifnull(t2.id, -1) as id, t1.id as croom_info_id, croom_id, croom_name, status FROM ( select id, croom_id, croom_name from croom_info ${ew.customSqlSegment}) as t1 LEFT JOIN ( select id, croom_info_id, status from croom_date_status where date(date) = #{date}) as t2 ON t1.id = croom_info_id </select> </mapper>
- ServiceImpl类
@Override public PageUtils queryRoomStatusList(Map<String, Object> params) { int pageNum = params.get("page")==null?1:Integer.valueOf(params.get("page").toString()); int limitNum = params.get("page")==null?10:Integer.valueOf(params.get("limit").toString()); String croomId = (String)params.get("room"); Date date = params.get("date")==null||params.get("date").toString()==""?DateUtils.stringToDate(new SimpleDateFormat("yyyy-MM-dd").format(new Date()), DateUtils.DATE_PATTERN):DateUtils.stringToDate(params.get("date").toString(), DateUtils.DATE_PATTERN); QueryWrapper<RoomStatusEntity> wrapper = new QueryWrapper<RoomStatusEntity>() .eq( "croom_status", 0) .like(StringUtils.isNotBlank(croomId),"croom_name", croomId) .or() .eq(!(croomId == null || "".equals(croomId)),"croom_id", croomId); Page<RoomStatusEntity> page = new Page<>(pageNum, limitNum); IPage<RoomStatusEntity> iPage = baseMapper.queryRoomStatusList(page, wrapper, date); return new PageUtils(iPage); }
目前mybatis-plus好像不支持在一个sql中用2个条件构造器。
第一次写,有问题欢迎评论!
相关文章推荐
- Mybatis plus之条件构造器及无法使用lambda做自定义sql查询问题
- Mybatis-Plus注解自定义sql分页查询
- MyBatisPlus之模糊查询加分页和条件构造器
- mybatis plus分页查询自定义sql,异常提示返回一个结果
- mybatis分页多条件查询指定时间段数据的sql语句
- mybatis的分页插件pagehelper-fix使用、数据库分页查询模板sql、总结mysql与oracle语句的区别
- 03_MyBatis基本查询,mapper文件的定义,测试代码的编写,resultMap配置返回值,sql片段配置,select标签标签中的内容介绍,配置使用二级缓存,使用别名的数据类型,条件查询ma
- 使用MyBatis(12)动态SQL 完成分页查询
- mybatis查询sql中in条件使用(foreach)
- MybatisPlus之一:分页加条件查询
- JPa多表原生sql自定义字段条件查询并进行分页和排序
- Mybatis 使用Mapper接口的Sql动态代码方式进行CURD和分页查询
- MyBatis中的动态SQL,实现不确定条件的CRUD-----使用Map来传递查询的参数
- mybatis查询sql中in条件使用(foreach)
- MyBatis-Plus简单使用——条件构造器(5)
- Mybatis-plus 3.0条件构造器的使用
- mybatis分页条件查询动态sql
- Hibernate查询,返回new对象(注意这个新定义的类要有构造函数),使用sql带条件分页查询并且把结果显示到一个对象的集里面的解决方案
- 03_MyBatis基本查询,mapper文件的定义,测试代码的编写,resultMap配置返回值,sql片段配置,select标签标签中的内容介绍,配置使用二级缓存,使用别名的数据类型,条件查询ma
- mybatis查询sql中in条件使用(foreach)