MyBatisPlus通过扫描实体类,并基于反射获取实体类信息作为数据库表信息
类名驼峰转下划线作为表名
名为id的字段作为主键
变量名驼峰转下划线作为表的字段名

常见注解
@TableName:用来指定表名
@Tableld:用来指定表中的主键字段信息
@TableField:用来指定表中的普通字段信息
IdType枚举
- AUTO:数据库自增长

- INPUT:通过set方法自行输入
- ASSIOG_ID:分配ID,接口IdentifierGenerator的方法nextId来生成id,默认实现类为DefaultIdentifierGenerator雪花算法
对于这个数据库表:tb_user

使用@TableField的常见场景:
- 成员变量名与数据库字段名不一致

- 成员变量名以is开头,且是布尔值

- 成员变量名与数据库关键字冲突

- 成员变量不是数据库字段

条件构造器
查询出名字中带‘o’的,存款大于等于1000元的人的id,info,balance:
SELECT id,info,balance
FROM user
WHERE username LIKE "o" AND balance >=?
void testQueryWrapper(){ //1.构建查询条件 QueryWrapper<User> wrapper=new QueryWrapper<User>() .selct("id","info","balance") .like("username","o") .ge("balance",1000); //2.查询 List<User> users=userMapper.selectList(wrapper); users.forEach(System::out::println); }其中User类是已经绑定数据库对应的user表
更新用户名为jack的用户余额为2000
UPDATE user
SET balance = 2000
WHERE username = "jack"
void testUpdateByQueryWrapper(){
//1.要更新的数据
User user=new User();
user.setBalance(2000);
//2.更新的条件
QueryWrapper<User> wrapper=new QueryWrapper<User>()
.eq("username","jack");
//3.执行更新
userMapper.update(user,wrapper);
}
更新id为1,2,4的用户的余额,扣200.
UPDATE user
SET balance = balance - 200
WHERE id IN (1,2,4)
void testUpdateWrapper(){
List<int> ids=List.of(1,2,4);
UpdateWrapper<User> Wrapper = new UpdateWrapper<User>()
.setSql("balance=balance-200")
.in("id",ids);
userMapper.update(null,wrapper);
}
尽量使用LambdaQueryWrapper和LambdaUpdateWrapper,避免硬编码
void testLambdaQueryWrapper(){
//1.构建查询条件
LabdaQueryWrapper<User> wrapper=new LabdaQueryWrapper<User>()
.selct(User::getUsername,User::getInfo,User::getBalance)
.like(User::getUsername,"o")
.ge(User::getBalance,1000);
//2.查询
List<User> users=userMapper.selectList(wrapper);
users.forEach(System::out::println);
}
Service接口

自己写的UserService接口继承IService接口,实现类UserServiceImpl继承ServiceImpl实现类,此时就可以使用Service接口了。
基于Restful风格实现下面的接口:





多个条件的查询建议用Lambda:

项目









![程序编码是 [科学] + [艺术]](https://img-blog.csdnimg.cn/d2b534a6a5fc48468d38e8eb1c86cdae.jpeg#pic_center)







![[OpenJDK:环境变量配置]:填充Profile并修改默认配置](https://img-blog.csdnimg.cn/4434177eac0d47449b9d78065899728b.png)

