MybatisPlus条件构造器说明以及selectPage方法

场景

项目搭建专栏:

https://blog.csdn.net/BADAO_LIUMANG_QIZHI/column/info/37194

基础搭建:

https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/89407994

条件构造器

官方文档:

实体包装器,用于处理 sql 拼接,排序,实体参数查询等!

补充说明: 使用的是数据库字段,不是Java属性!

实体包装器 EntityWrapper 继承 Wrapper

简单示例

  • 翻页查询
public Page selectPage(Page page, EntityWrapper entityWrapper) {
  if (null != entityWrapper) {
      entityWrapper.orderBy(page.getOrderByField(), page.isAsc());
  }
  page.setRecords(baseMapper.selectPage(page, entityWrapper));
  return page;
}
  • 拼接 sql 方式 一
@Test
public void testTSQL11() {
    /*
     * 实体带查询使用方法  输出看结果
     */
    EntityWrapper ew = new EntityWrapper();
    ew.setEntity(new User(1));
    ew.where("user_name={0}", "'zhangsan'").and("id=1")
            .orNew("user_status={0}", "0").or("status=1")
            .notLike("user_nickname", "notvalue")
            .andNew("new=xx").like("hhh", "ddd")
            .andNew("pwd=11").isNotNull("n1,n2").isNull("n3")
            .groupBy("x1").groupBy("x2,x3")
            .having("x1=11").having("x3=433")
            .orderBy("dd").orderBy("d1,d2");
    System.out.println(ew.getSqlSegment());
}
  • 拼接 sql 方式 二
int buyCount = selectCount(Condition.create()
                .setSqlSelect("sum(quantity)")
                .isNull("order_id")
                .eq("user_id", 1)
                .eq("type", 1)
                .in("status", new Integer[]{0, 1})
                .eq("product_id", 1)
                .between("created_time", startDate, currentDate)
                .eq("weal", 1));
  • 自定义 SQL 方法如何使用 Wrapper

mapper java 接口方法

List selectMyPage(RowBounds rowBounds, @Param("ew") Wrapper wrapper);

mapper xml 定义

关于 ${ew.sqlSegment} 使用了 $ 不要误以为就会被 sql 注入,请放心使用 mp 内部对 wrapper 进行了字符转义处理!

条件参数说明

 

查询方式 说明
setSqlSelect 设置 SELECT 查询字段
where WHERE 语句,拼接 + WHERE 条件
and AND 语句,拼接 + AND 字段=值
andNew AND 语句,拼接 + AND (字段=值)
or OR 语句,拼接 + OR 字段=值
orNew OR 语句,拼接 + OR (字段=值)
eq 等于=
allEq 基于 map 内容等于=
ne 不等于<>
gt 大于>
ge 大于等于>=
lt 小于<
le 小于等于<=
like 模糊查询 LIKE
notLike 模糊查询 NOT LIKE
in IN 查询
notIn NOT IN 查询
isNull NULL 值查询
isNotNull IS NOT NULL
groupBy 分组 GROUP BY
having HAVING 关键词
orderBy 排序 ORDER BY
orderAsc ASC 排序 ORDER BY
orderDesc DESC 排序 ORDER BY
exists EXISTS 条件语句
notExists NOT EXISTS 条件语句
between BETWEEN 条件语句
notBetween NOT BETWEEN 条件语句
addFilter 自由拼接 SQL
last 拼接在最后,例如:last("LIMIT 1")

注意! xxNew 都是另起 ( ... ) 括号包裹。

实现

编写测试方法测试selectPage方法。

/***
  *条件构造器 查询操作
  */
 @Test
 public void testEntitymapperSelect() {
  //分页查询数据库,年龄字段在某个区间内,并且性别为男(1),并且名字为霸道的记录
  List employeeList=employeeMapper.selectPage(new Page(1, 2), new EntityWrapper()
    .between("age", 20, 30)
    .eq("gender",1)
    .eq("name", "霸道")
    );
  System.out.println("*******************"+employeeList);
  for (Employee employee : employeeList) {
   System.out.println(employee.getName());
  }
 } 
  

运行测试效果:

MybatisPlus条件构造器说明以及selectPage方法_第1张图片

源码下载

https://download.csdn.net/download/badao_liumang_qizhi/11136681

你可能感兴趣的:(selectPage,MyBatisPlus)