mybatis-plus中wrapper的用法实例详解

发布时间:2026-09-28 17:17:35 浏览次数:1

MyBatis-Plus中Wrapper的用法实例详解

MyBatis-Plus是一个基于MyBatis的增强工具,提供了许多便捷的功能来简化数据库操作。其中,Wrapper是MyBatis-Plus中一个重要的概念,用于构建查询条件。

1. Wrapper简介

Wrapper是MyBatis-Plus中的一个查询条件构造器,它可以帮助我们动态地构建查询条件,实现更加灵活的数据库查询。Wrapper提供了一系列的方法,可以根据需求来构建不同的查询条件。

2. Wrapper的基本用法

2.1 创建Wrapper对象

我们可以使用QueryWrapper或UpdateWrapper来创建Wrapper对象,它们分别用于查询和更新操作。下面是创建Wrapper对象的示例代码:

QueryWrapper<User> queryWrapper = new QueryWrapper<>();UpdateWrapper<User> updateWrapper = new UpdateWrapper<>();

2.2 添加查询条件

Wrapper提供了一系列的方法来添加查询条件,例如eq、ne、like等。下面是添加查询条件的示例代码:

queryWrapper.eq(\"age\", 20); // 年龄等于20queryWrapper.ne(\"gender\", \"male\"); // 性别不等于malequeryWrapper.like(\"name\", \"Tom\"); // 名字包含Tom

2.3 执行查询操作

使用Wrapper构建好查询条件后,我们可以将其传入MyBatis-Plus的查询方法中,执行数据库查询操作。下面是执行查询操作的示例代码:

List<User> userList = userMapper.selectList(queryWrapper);

3. Wrapper的高级用法

除了基本的查询条件外,Wrapper还提供了一些高级的用法,例如嵌套查询、排序、分页等。

3.1 嵌套查询

Wrapper支持嵌套查询,可以通过nested方法来实现。下面是嵌套查询的示例代码:

queryWrapper.nested(qw -> qw.eq(\"age\", 20).or().eq(\"age\", 30));

3.2 排序

Wrapper可以用于指定查询结果的排序方式,可以通过orderBy方法来实现。下面是排序的示例代码:

queryWrapper.orderByAsc(\"age\"); // 按年龄升序排序queryWrapper.orderByDesc(\"create_time\"); // 按创建时间降序排序

3.3 分页

Wrapper还可以用于分页查询,可以通过page方法来实现。下面是分页查询的示例代码:

Page<User> page = new Page<>(1, 10); // 查询第一页,每页10条记录userMapper.selectPage(page, queryWrapper);List<User> userList = page.getRecords(); // 获取查询结果

4. 示例说明

下面是两个示例说明,演示了Wrapper的用法:

4.1 示例一:查询年龄大于等于20的用户

QueryWrapper<User> queryWrapper = new QueryWrapper<>();queryWrapper.ge(\"age\", 20); // 年龄大于等于20List<User> userList = userMapper.selectList(queryWrapper);

4.2 示例二:更新名字包含\"Tom\"的用户的年龄为25

UpdateWrapper<User> updateWrapper = new UpdateWrapper<>();updateWrapper.like(\"name\", \"Tom\"); // 名字包含TomupdateWrapper.set(\"age\", 25); // 设置年龄为25userMapper.update(null, updateWrapper);
需要做网站?需要网络推广?欢迎咨询客户经理 13272073477