Wrapper

Wrapper 是 MyBatis-Plus 提供的一种查询条件构造器,用于构建动态 SQL 查询语句。它可以方便地进行复杂的查询条件拼接,并支持多种查询条件的组合。

Wrapper 包含以下四个实现类:

  1. AbstractWrapper:抽象类,提供了基本的查询条件构造器;
  2. QueryWrapper:查询条件构造器类,用于构造 SELECT 语句中的 WHERE 子句;
  3. UpdateWrapper:更新条件构造器类,用于构造 UPDATE 语句中的 SET 子句和 WHERE 子句;
  4. LambdaQueryWrapper:Lambda 表达式查询条件构造器类,与 QueryWrapper 类似,但使用了 Java 8 Lambda 表达式风格。

使用 Wrapper 可以方便地进行复杂的动态查询条件构造,例如,可以根据用户输入的参数组合不同的查询条件,构造出不同的 SQL 查询语句,并传递给 MyBatis 进行执行。同时,MyBatis-Plus 还提供了丰富的查询条件函数和操作符,可以满足大部分的查询需求。

以下是一个使用 QueryWrapper 进行查询的示例:

QueryWrapper<User> wrapper = new QueryWrapper<>();
wrapper.eq("name", "Tom").or().like("email", "gmail.com");
List<User> userList = userMapper.selectList(wrapper);

该代码通过 QueryWrapper 构造了一个查询条件,要求查询名字为 Tom 或者邮箱包含 gmail.com 的用户记录,并使用 selectList 方法执行查询操作。

总之,Wrapper 是 MyBatis-Plus 提供的一种方便快捷的查询条件构造器,可以帮助开发者轻松构造复杂的 SQL 查询语句,并提高代码的可读性和可维护性。

AbstractWrapper 是 MyBatis-Plus 中最顶端的抽象类,它实现了 Wrapper 接口,并提供了基础的查询条件构造器方法。其他三种 Wrapper 类(QueryWrapper、UpdateWrapper、LambdaQueryWrapper)都继承自 AbstractWrapper,并在此基础上提供了更丰富的方法来满足不同的查询需求。

AbstractWrapper 的主要使用方法包括以下几个方面:

  • 构造函数:AbstractWrapper 有多个重载的构造函数,可以直接传入实体类类型和数据库表名等参数来初始化 Wrapper 对象。
public AbstractWrapper() {}
public AbstractWrapper(Class<T> entityClass) {}
public AbstractWrapper(String tableName) {}
public AbstractWrapper(String tableName, Class<T> entityClass) {}
  • 通用查询条件构造方法:AbstractWrapper 提供了一些常用的查询条件构造方法,例如 eqnelikein 等。这些方法都是使用 Wrapper 的链式调用方式进行调用的。
public AbstractWrapper<T> eq(String column, Object value) {}
public AbstractWrapper<T> ne(String column, Object value) {}
public AbstractWrapper<T> like(String column, Object value) {}
public AbstractWrapper<T> in(String column, Collection<?> value) {}
  • 链式调用:MyBatis-Plus 的 Wrapper 支持链式调用,可以使用 and 和 or 进行逻辑组合,例如:
QueryWrapper<User> wrapper = new QueryWrapper<>();
wrapper.eq("name", "Tom").or().like("email", "gmail.com");

以上代码构造了一个查询条件,要求查询名字为 Tom 或者邮箱包含 gmail.com 的用户记录,并使用 selectList 方法执行查询操作。

  • 查询条件组装方法:除了常用的单一查询条件构造方法外,AbstractWrapper 还提供了一些查询条件组装方法,例如 applylast 等,这些方法可以帮助我们更灵活地构造复杂的查询条件组合。
public AbstractWrapper<T> apply(String applySql, Object... params) {}
public AbstractWrapper<T> last(String lastSql) {}

总之,AbstractWrapper 是 MyBatis-Plus 提供的最顶级的查询条件构造器抽象类,提供了基础的查询条件组装方法,其他 Wrapper 类都是在此基础上进行扩展和优化。开发人员可以根据自己的需求选择合适的 Wrapper 类并灵活使用其中的方法来构造查询条件,以实现快速高效的数据操作。

Mybatis-Plus中常用的类有:

  1. BaseMapper:提供了一些常用的CRUD方法,包括插入、删除、更新和查询等操作;
  2. Wrapper:封装了条件构造器,可以实现动态拼接SQL语句;
  3. QueryWrapper:继承自Wrapper,用于构造查询条件;
  4. UpdateWrapper:继承自Wrapper,用于构造更新条件;
  5. LambdaQueryWrapper:基于lambda表达式的查询条件构造器,相比QueryWrapper更为简洁、直观;
  6. LambdaUpdateWrapper:基于lambda表达式的更新条件构造器,相比UpdateWrapper更为简洁、直观;
  7. Page:分页查询对象,用于指定查询结果的偏移量和限制数量;
  8. PageHelper:Mybatis-Plus提供的分页插件,实现了自动拦截分页请求并进行分页查询。
  9. BaseMapper是MyBatis-Plus中非常重要的一个类,它提供了一些通用的CRUD方法,包括插入、删除、更新和查询等操作。开发者可以通过继承BaseMapper来实现对数据库表的基本操作,而不需要手动编写SQL语句。

    使用BaseMapper可以帮助开发者避免编写常规的增删改查SQL语句的繁琐工作,减少代码量,提高开发效率。同时,BaseMapper还支持自定义SQL语句的编写,满足开发者的个性化需求。

    在使用BaseMapper时,需要注意几个事项:

  10. 需要在Mapper接口上加上注解@Mapper;
  11. 具体的业务Mapper需要继承BaseMapper,并指定泛型为实体类类型;
  12. 对于自定义的SQL语句,建议使用@InsertProvider、@UpdateProvider、@DeleteProvider等注解来定义SQL语句,这样可以更方便的使用mybatis-plus中的动态SQL标签;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值