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

一、入门案例

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

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

1.引入MybatisPlus的起步依赖

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

<!--MybatisPlus-->
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>3.5.3.1</version>
</dependency>

2.自定义Mapper继承BaseMapper<T>接口

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

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

public interface User2Mapper extends BaseMapper<User> {
}

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

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<User> 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通过扫描实体类,并基于反射获取实体类信息作为数据库表的信息

约定:

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

②名为id的字段作为主键

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

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

①@TableName:用来指定表名

②@TableId:指定表中的主键

③@TableField:指定表中字段

用户表信息如下

 对应的User配置类

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下划线转驼峰的映射

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

①引入起步依赖

②自定义Mapper继承BaseMapper

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MyBatis-Plus是一个基于MyBatis的增强工具,提供了许多方便的注解来简化开发。以下是MyBatis-Plus中常用注解介绍: 1. @TableName:用于指定实体类对应的数据库表名,可以在实体类上使用。 2. @TableId:用于指定实体类中的主键字段,可以在主键字段上使用。可以通过value属性指定主键字段名,也可以通过type属性指定主键类型。 3. @TableField:用于指定实体类中的非主键字段,可以在非主键字段上使用。可以通过value属性指定字段名,也可以通过exist属性指定该字段是否在数据库中存在。 4. @Version:用于乐观锁实现,可以在实体类的版本字段上使用。乐观锁是一种并发控制机制,通过版本号来判断数据是否被修改。 5. @EnumValue:用于枚举类型与数据库字段的映射,可以在枚举类型的字段上使用。可以通过value属性指定数据库中对应的值。 6. @TableLogic:用于逻辑删除实现,可以在实体类的逻辑删除字段上使用。逻辑删除是一种软删除机制,通过标记删除状态来隐藏数据。 7. @SqlParser:用于SQL解析配置,可以在Mapper接口方法上使用。可以通过filter属性指定需要解析的SQL类型。 8. @Insert、@Update、@Delete、@Select:用于指定Mapper接口方法对应的SQL语句,可以在Mapper接口方法上使用。可以通过value属性指定SQL语句。 9. @Param:用于指定Mapper接口方法参数的名称,可以在Mapper接口方法的参数上使用。可以通过value属性指定参数名称。 10. @Results、@Result:用于指定查询结果与实体类字段的映射关系,可以在Mapper接口方法上使用。可以通过@Results注解指定多个@Result注解。 以上是MyBatis-Plus中常用注解介绍。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值