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项目控制台中文乱码
