mybatis plus条件构造器

实体包装器,用于处理 sql 拼接,排序,实体参数查询等!
 
补充说明: 使用的是数据库字段,不是Java属性!
 
实体包装器 EntityWrapper 继承 Wrapper
简单示例
 
    翻页查询
 
public Page<T> selectPage(Page<T> page, EntityWrapper<T> entityWrapper) {
  if (null != entityWrapper) {
      entityWrapper.orderBy(page.getOrderByField(), page.isAsc());
  }
  page.setRecords(baseMapper.selectPage(page, entityWrapper));
  return page;
}
 
    拼接 sql 方式 一
 
@Test
public void testTSQL11() {
    /*
     * 实体带查询使用方法  输出看结果
     */
    EntityWrapper<User> ew = new EntityWrapper<User>();
    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<User> selectMyPage(RowBounds rowBounds, @Param("ew") Wrapper<T> wrapper);
 
mapper xml 定义
 
<select id="selectMyPage" resultType="User">
  SELECT * FROM user 
  <where>
  ${ew.sqlSegment}
  </where>
</select>
 
关于 ${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 都是另起 ( ... ) 括号包裹。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值