MyBatisPlus的学习项目页面

MyBatisPlus通过扫描实体类,并基于反射获取实体类信息作为数据库表信息

类名驼峰转下划线作为表名

名为id的字段作为主键

变量名驼峰转下划线作为表的字段名

MyBatisPlus的学习项目页面_第1张图片

常见注解

@TableName:用来指定表名

@Tableld:用来指定表中的主键字段信息

@TableField:用来指定表中的普通字段信息

IdType枚举
  • AUTO:数据库自增长

  • INPUT:通过set方法自行输入
  • ASSIOG_ID:分配ID,接口IdentifierGenerator的方法nextId来生成id,默认实现类为DefaultIdentifierGenerator雪花算法

对于这个数据库表:tb_user

MyBatisPlus的学习项目页面_第2张图片

使用@TableField的常见场景:

  • 成员变量名与数据库字段名不一致

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

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

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

条件构造器

查询出名字中带‘o’的,存款大于等于1000元的人的id,info,balance:

SELECT id,info,balance 

FROM user

WHERE username LIKE "o" AND balance >=?

void testQueryWrapper(){
    //1.构建查询条件
    QueryWrapper wrapper=new QueryWrapper()
            .selct("id","info","balance")
            .like("username","o")
            .ge("balance",1000);
    //2.查询
    List 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 wrapper=new QueryWrapper()
            .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 ids=List.of(1,2,4);
    UpdateWrapper Wrapper = new UpdateWrapper()
            .setSql("balance=balance-200")
            .in("id",ids);
    userMapper.update(null,wrapper);

}

尽量使用LambdaQueryWrapper和LambdaUpdateWrapper,避免硬编码

void testLambdaQueryWrapper(){
    //1.构建查询条件
    LabdaQueryWrapper wrapper=new LabdaQueryWrapper()
            .selct(User::getUsername,User::getInfo,User::getBalance)
            .like(User::getUsername,"o")
            .ge(User::getBalance,1000);
    //2.查询
    List users=userMapper.selectList(wrapper);
    users.forEach(System::out::println);
}

Service接口

MyBatisPlus的学习项目页面_第3张图片

自己写的UserService接口继承IService接口,实现类UserServiceImpl继承ServiceImpl实现类,此时就可以使用Service接口了。

基于Restful风格实现下面的接口:

MyBatisPlus的学习项目页面_第4张图片

 MyBatisPlus的学习项目页面_第5张图片

MyBatisPlus的学习项目页面_第6张图片

MyBatisPlus的学习项目页面_第7张图片

MyBatisPlus的学习项目页面_第8张图片

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

MyBatisPlus的学习项目页面_第9张图片

项目

你可能感兴趣的:(总结,MybatisPlus,java,数据库,开发语言)