mybatis plus 各种查询 方法 分页

使用 mybatis-plus 时利用各种方法 实现 简单 条件查询 拼接各种sql条件 示例 及分页示例

//查询条件
    String searchdeptcode = request.getParameter("searchdeptcode");//机构
    String searchusername = request.getParameter("searchusername");//姓名
    String searchstate = request.getParameter("searchstate");//状态
    String searchstartdate = request.getParameter("searchstartdate");//开始时间
    String searchendtate = request.getParameter("searchendtate");//结束时间

    //分页参数
    Integer page = StringEx.tInteger(request.getParameter("page"));
    Integer rows = StringEx.tInteger(request.getParameter("rows"));
	//分页参数
    Page<Leave> pageNum = new Page<>(page, rows);
	//查询参数    
    QueryWrapper<Leave> wrapper = new QueryWrapper<>();
    
    //右模糊 LIKE 值%
    (例:SELECT * FROM LEAVE WHERE "DEPTCODE" LIKE 123%)
    wrapper.likeRight("DEPTCODE", searchdeptcode);
    (例:SELECT * FROM <WHERE><if test="searchdeptcode != null and searchdeptcode != " > and DEPTCODE LIKE CONCAT(#{
          
   searchdeptcode},%)</if></WHERE>)
    wrapper.likeRight(!StringEx.isNull(searchdeptcode), "DEPTCODE", searchdeptcode);
    
    //-------------------下同------------------
    //左模糊 LIKE %值
    wrapper.likeLeft(!StringEx.isNull(searchusername), "USERNAME", searchusername);
    wrapper.likeLeft("USERNAME", searchusername);
    //全模糊LIKE %值%
    wrapper.like(!StringEx.isNull(searchusername), "USERNAME", searchusername);
    wrapper.like( "USERNAME", searchusername);
    //等于 = 值
    wrapper.eq(!StringEx.isNull(searchstate), "STATE", searchstate);
    //大于等于 >=
    wrapper.ge(!StringEx.isNull(searchstartdate), "STARTDATE", StringEx.getDateFromStringYMD(searchstartdate));
    //小于等于 <=
    wrapper.le(!StringEx.isNull(searchendtate), "ENDDATE", StringEx.getDateFromStringYMD(searchendtate));
    //不等于 &lt;&gt;
    wrapper.ne(...);
    //大于 &gt
    wrapper.gt(...);
    //小于 &lt;
    wrapper.lt(...);
    // 两者之间 BETWEEN 值1 AND 值2
    wrapper.between(boolean b,值1,值2);
    // 两者之外 NOT BETWEEN 值1 AND 值2
    wrapper.notBetween(...);
    // 不包含 NOT LIKE %值%
    wrapper.notLike(...);
    // 等于这些值 字段 IN (value0) value1, ...)
    wrapper.in(...);
    // 不等于这些值 字段 NOT IN (value0) value1) ...)
    wrapper.notIn(...);
    // sql 注入方式的 in 方法 (例:inSql("id", "select id from table where id &lt; 3"))
    wrapper.inSql(...);
    //sql 注入方式的 not in 方法 
    wrapper.notInSql(...);
    //分组:GROUP BY 字段, ...
    wrapper.groupBy(...)
    //排序 大到小
    wrapper.orderByDesc("INPUTTIME",...);
    //排序 小到大
    wrapper.orderByAsc("INPUTTIME",...);
    //排序:orderBy(boolean 执行条件, boolean 是否是 ASC 排序, R... 字段数组);
    wrapper.orderBy(boolean condition, boolean isAsc, R... columns);
    //HAVING ( sql语句 )
    wrapper.having(...)
	//and
	wrapper.and(e->e.eq(...))
	wrapper.and().eq(...)
	//or
	wrapper.or(e->e.eq(...))
	wrapper.or().eq(...)
	//and,or复合使用
	//and(DEPTCODE=1 or DEPTCODE != null)
	wrapper.and(e->e.eq("DEPTCODE","1").or().isNull("DEPTCODE"));
	//or(DEPTCODE=1 and DEPTCODE != null)
    wrapper.or(e->e.eq("DEPTCODE","1").and().isNull("DEPTCODE"));
   
    //分页查询
    IPage<Leave> page1 = leaveService.page(pageNum, wrapper);
    List<Leave> records = page1.getRecords();
    long total = page1.getTotal();
    //条件查询全部数据
    List<Leave> list = leaveService.list(wrapper);
    //无条件
    List<Leave> list = leaveService.list();
经验分享 程序员 微信小程序 职场和发展