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)); //不等于 <> wrapper.ne(...); //大于 > wrapper.gt(...); //小于 < 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 < 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();
上一篇:
IDEA上Java项目控制台中文乱码