01MyBatisPlus入门案例,常见注解,常用配置

一、入门案例

需求:基于课前资料提供的项目,实现下列功能:

  • 新增用户功能
  • 根据id查询用户
  • 根据id批量查询用户
  • 根据id更新用户
  • 根据id删除用户

1.引入MybatisPlus的起步依赖

MybatisPlus官方提供的starter,其中集成了MybatisMybatisPlus的所有功能。实现自动装配效果。



    com.baomidou
    mybatis-plus-boot-starter
    3.5.3.1

2.自定义Mapper继承BaseMapper接口

自定义Mapper继承MyBatisPlus提供的BaseMapper接口

T泛型是操作的实体类的类型

public interface User2Mapper extends BaseMapper {
}

BaseMapper里面定义了增删改查的方法

01MyBatisPlus入门案例,常见注解,常用配置_第1张图片

3.测试

@SpringBootTest
class UserMapperTest {

    @Autowired
    private User2Mapper user2Mapper;

    @Test
    void testInsert() {
        User user = new User();
        user.setId(5L);
        user.setUsername("Lucy");
        user.setPassword("123");
        user.setPhone("18688990011");
        user.setBalance(200);
        user.setInfo("{\"age\": 24, \"intro\": \"英文老师\", \"gender\": \"female\"}");
        user.setCreateTime(LocalDateTime.now());
        user.setUpdateTime(LocalDateTime.now());
        user2Mapper.insert(user);
    }

    @Test
    void testSelectById() {
        User user = user2Mapper.selectById(5L);
       System.out.println("user = " + user);
    }


    @Test
    void testQueryByIds() {
        List list = new ArrayList();
        list.add(1L);
        list.add(2L);
        list.add(3L);
        List users = user2Mapper.selectBatchIds(list);
       users.forEach(System.out::println);
    }

    @Test
    void testUpdateById() {
        User user = new User();
        user.setId(5L);
        user.setBalance(20000);
        user2Mapper.updateById(user);
    }

    @Test
    void testDeleteUser() {
        user2Mapper.deleteById(5L);
    }
}

二、常见注解

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

01MyBatisPlus入门案例,常见注解,常用配置_第2张图片

约定:

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

②名为id的字段作为主键

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

2.MybatisPlus常用的注解(实体类跟数据库表不一致)

①@TableName:用来指定表名

②@TableId:指定表中的主键

③@TableField:指定表中字段

用户表信息如下

01MyBatisPlus入门案例,常见注解,常用配置_第3张图片

 对应的User配置类

01MyBatisPlus入门案例,常见注解,常用配置_第4张图片

3.@TableId的type总结

@TableId(value=”id”,type=IdType.AUTO)

①IdType.AUTO:id自增

②IdType.INPUT:id通过set方法自行输入

③IdType.ASSIGN_ID:随机ID,雪花算法

4.使用@TableField的常见场景

①成员变量名跟数据库字段名不一致

②成员变量名是is开头布尔值(因为mp会把is去掉)

③成员变量名跟数据库关键字冲突

④成员变量不是数据库字段exist=false

三、常用配置

1.MyBatisPlus继承MyBatis的原生配置

①type-aliases-package别名扫描包:PO实体类的包

②mapper-locations扫描mapper.xml文件的

③map-underscore-to-camel-case下划线转驼峰的映射

01MyBatisPlus入门案例,常见注解,常用配置_第5张图片

 2. MyBatisPlus使用的基本流程是什么?

①引入起步依赖

②自定义Mapper继承BaseMapper

③在实体类上添加注解声明表信息

④在application.yml根据需要添加配置

你可能感兴趣的:(MyBatisPlus,java,MyBatisPlus)