目录
7.2用条件构造器作为参数: 将userName=张三说java的年龄改为20
1.依赖
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.5.0</version>
</dependency>
2.yml配置
mybatis-plus:
mapper-locations: classpath:mappers/*Mapper.xml
configuration:
#打印sql
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
#开启驼峰命名
map-underscore-to-camel-case: true
global-config:
db-config:
table-prefix: t_
3.mapper
继承BaseMapper<实体类>
@Repository
public interface UserMapper extends BaseMapper<User> {
}
4.service
public interface UserService extends IService<User> {
}
serviceImpl
@Service
public class UserServiceImpl extends ServiceImpl<UserMapper,User> implements UserService {
}
5.Api的简单使用--分页
添加一个config类
@Configuration
@MapperScan("com.mybatisplus.mapper")
public class MybatisPlusConfig {
//mybatisPlus分页插件
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor(){
MybatisPlusInterceptor mybatisPlusInterceptor = new MybatisPlusInterceptor();
mybatisPlusInterceptor.addInnerInterceptor(new PaginationInnerInterceptor());
return mybatisPlusInterceptor;
}
}
编写分页代码
Page<User> page = userService.page(new Page<>(1,5));
//查询出来的分页数据
List<User> records = page.getRecords();
records.forEach(System.out::println);
输出结果

6.添加
//添加
userService.save(user);
//批量添加 users是list集合
userService.saveBatch(users);
//批量添加 users是list集合 10是插入批次数量
userService.saveBatch(users,10);
7.修改
7.1根据id修改
User user4 = new User(17,"abc",18,"徐州市","1999-01-01");
userService.updateById(user4);
7.2用条件构造器作为参数: 将userName=张三说java的年龄改为20
//用条件构造器作为参数: 将userName=张三说java的年龄改为20
//user_name 要和数据库的对应
UpdateWrapper<User> userUpdateWrapper = new UpdateWrapper<>();
userUpdateWrapper.eq("user_name","张三说java");
User user1 = new User();
user1.setAge(20);
userService.update(user1,userUpdateWrapper);
如果修改的参数不多也可以这样写,使用updateWrapper的set方法
UpdateWrapper<User> userUpdateWrapper = new UpdateWrapper<>();
userUpdateWrapper.eq("user_name","张三说java").set("age",20);
userService.update(null,userUpdateWrapper);
7.3 lambda构造器实现修改(推荐使用这一种)
//将userName = 张三说java的年龄修改为20岁
userService.lambdaUpdate().eq(User::getUserName, "张三说java").set(User::getAge, 20).update();
8.删除
8.1 根据id删除
//根据id删除
userService.removeById(22);
8.2 批量删除
//批量删除,List<Integer> idList = new ArrayList<>();
userService.removeByIds(idList);
8.3 根据构造器删除
//根据构造器删除,删除userName = aaaa的
LambdaQueryWrapper<User> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(User::getUserName,"aaaa");
userService.remove(queryWrapper);
9.查询
9.1 查询所有
//查询所有
List<User> list = userService.list();
9.2 根据id查询
//根据id查询
User byId = userService.getById(1);
9.3 根据id批量查询
//根据id批量查询,List<Integer> idList = new ArrayList<>();
List<User> users1 = userService.listByIds(idList);
9.4 根据lambda构造器条件查询
| 查询方式 | 说明 |
|---|---|
| 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") |
9.4.1 根据某个字段查询
.list() 返回的是一个list集合
.one 返回的是一个User对象
//查询年龄 = 18 的数据
List<User> list1 = userService.lambdaQuery().eq(User::getAge, 18).list();
User user = userService.lambdaQuery().eq(User::getAge, 28).one();
9.4.2 or
//查询age = 20 或者 userName = 张三说前端 的数据
// SELECT id,user_name,age,address,birthday FROM t_user WHERE (age = ? OR user_name = ?)
List<User> list1 = userService.lambdaQuery().eq(User::getAge, 20).or().eq(User::getUserName,"张三说前端").list();
9.4.3 and
// 查询age = 18 并且 userName = ww 的数据
// SELECT id,user_name,age,address,birthday FROM t_user WHERE (age = ? AND user_name = ?)
List<User> list1 = userService.lambdaQuery().eq(User::getAge, 18).eq(User::getUserName,"ww").list();
9.4.4 between
// 查询 age>=20 并且 age<=25 的数据
// SELECT id,user_name,age,address,birthday FROM t_user WHERE (age BETWEEN ? AND ?)
List<User> list = userService.lambdaQuery().between(User::getAge, 20, 25).list();
9.4.5 in
// 查询 age = 20和21 的数据 in()的第二个参数可以写数据,集合,或者直接写死都可以
// SELECT id,user_name,age,address,birthday FROM t_user WHERE (age IN (?,?))
List<User> list = userService.lambdaQuery().in(User::getAge,20,21).list();
9.4.6 like
// 模糊查询
// SELECT id,user_name,age,address,birthday FROM t_user WHERE (user_name LIKE ?)
List<User> list = userService.lambdaQuery().like(User::getUserName,"java").list();
9.4.7 ge 大于等于
// ge 大于等于 查询age>=25的数据
// SELECT id,user_name,age,address,birthday FROM t_user WHERE (age >= ?)
List<User> list = userService.lambdaQuery().ge(User::getAge,25).list();
9.4.8 orderByAsc 根据某字段升序排序
// 根据age升序排序
// SELECT id,user_name,age,address,birthday FROM t_user ORDER BY age ASC
List<User> list = userService.lambdaQuery().orderByAsc(User::getAge).list();
9.4.9 orderByDesc 根据某字段降序排序
// 根据age降序排序
// SELECT id,user_name,age,address,birthday FROM t_user ORDER BY age DESC
List<User> list = userService.lambdaQuery().orderByDesc(User::getAge).list();
本文详细介绍MyBatis Plus的安装配置、基本使用方法,包括依赖引入、YAML配置、Mapper接口定义、Service接口及实现,以及如何进行增删改查操作,并通过实例演示了分页查询、条件构造器的使用等高级特性。
837

被折叠的 条评论
为什么被折叠?



