官网地址:MyBatis-Plus (baomidou.com)
1、引入mysql依赖,lombok依赖,单元测试spring-boot-starter-test依赖,mybatis-plus-boot-starter依赖。
集成了mybatis和mybatis-plus的所有功能,实现自动装配,可以替代原来的mybatis的starter。
2、定义Mapper,自定义的Mapper集成mybatis-plus提供的BaseMapper,其中定义了大量的增删改查的方法。
3、完善application.yaml中的数据源配置。
MP获取实现CRUD数据库表信息:
常用注解:
@TableId为指定Type的话,默认使用的是雪花算法生成ID。
常见配置:
只要有mp的starter依赖,就可以自动配置直接使用,同时mp还支持很多的自定义配置。
type-aliases-package:类型别名的扫描包,指定实体类所在的包,作用是在你定义的mapper.xml里面,如果要指定实体类的类型,不用写全路径名,直接写简化名就可以了。
核心功能 ---- 条件构造器
案例:
1、查询出名字中带o的,存款大于等于1000元的人的id,username,info,balance字段。
SELECT id,username,info,balance
FROM user
WHERE username Like ? And balance > ?
QueryWrapper<User> wrapper = new QueryWrapper<User>()
.select("id","username","info","password")
.like("username","o")
.ge("balance",1000);
userMapper.selectList(wrapper)
//名字为jack的balance余额改为2000
User user = new User<>();
user.setBalance("2000");
QueryWrapper<User> wrapper = new QueryWrapper<User>().eq(username,"jack");
userMapper.Update(user,wrapper);
2、更新id为1,2,4用户的余额,扣200
UPDATE user
SET balance = balance -200
WHERE id in (1,2,4)
List<Long> ids = List.of(1L,2L,4L);
userMapper.update(null,new UpdateWrapper<User>()
.setSql("balance = balance - 200")
.in("id",ids)
);
存在硬编码的问题,可以使用Lamada表达式: