MyBatis-Plus(MP)使用教程&知识点笔记

这篇博客介绍了如何搭建MyBatis-Plus(MP)的SpringBoot环境,包括创建SpringBoot工程、配置数据库、添加Mapper扫描注解等步骤。然后详细讲解了MP的主要特性,如主键生成策略(如雪花算法)、自动填充和乐观锁机制,以及分页查询、条件构造器和常用接口的使用。还提到了逻辑删除的概念和实现,以及查询和删除操作的示例。
摘要由CSDN通过智能技术生成

MyBatis-Plus(MP)使用教程&知识点笔记

一、环境搭建

1.创建SpringBoot工程

Springboot场景启动器版本以2.2.1.RELEASE为例;

2.导入依赖:

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>com.baomidou</groupId>
        <artifactId>mybatis-plus-boot-starter</artifactId>
        <version>3.3.1</version>
    </dependency>
    <!--简化实体类-->
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <version>1.18.18</version>
    </dependency>
    <!--Mysql依赖-->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
    </dependency>
</dependencies>

3.在application.yml 进行数据库连接配置:

# DataSource Config
spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    username: root
    password: 1234
    url: jdbc:mysql://localhost:3306/mybatis_plus?serverTimezone=GMT%2B8
    #    url: jdbc:mysql://localhost:3306/mybatis_plus      # 更高版本
# mybatis日志
mybatis-plus:
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

4.在主启动类添加@MapperScan 注解,扫描 Mapper 文件夹

@SpringBootApplication
@MapperScan("com.mapper")
public class DemomptestApplication {
   

    public static void main(String[] args) {
   
        SpringApplication.run(DemomptestApplication.class, args);
    }

}

5.添加实体类

	并提供构造法方法;

6.添加mapper

创建包 mapper 编写Mapper 接口: XXXMapper.java
@Repository
public interface UserMapper extends BaseMapper<User> {
   
}

在这里extends 了 BaseMapper 并指定了类型
BaseMapper 内封装了一些对DAO的一些基本的操作
注意:为了避免报错(IDEA在 userMapper 处报错,因为找不到注入的对象,因为类是动态创建的,但是程序可以正确的执行。);可以在 dao 层 的接口上添加 @Repository 注解

7.测试

MP封装的有基本的操作的方法,因此便可以使用直接对Dao进行基本操作
编写测试类:
查询操作:

@SpringBootTest
class DemomptestApplicationTests {
   

    @Autowired
    private UserMapper userMapper;

    @Test
    public void findAll() {
   
        List<User> users = userMapper.selectList(null);
        System.out.println(users);
    }
}

添加操作:

//添加
@Test
public void testAdd() {
   
    User user = new User();
    user.setName("lucy");
    user.setAge(20);
    user.setEmail("1243@qq.com");
    int insert = userMapper.insert(user);
    System.out.println(insert);
}

重点:数据库插入id值默认为:全局唯一id


二、知识点:

1.MP的主键生成策略:

MyBatis-Plus默认的主键策略是:ASSIGN_ID (使用了雪花算法)
1.1 ASSIGN_ID

@TableId(type = IdType.ASSIGN_ID)
private String id;

雪花算法:分布式ID生成器
雪花算法是由Twitter公布的分布式主键生成算法,它能够保证不同表的主键的不重复性,以及相同表的主键的有序性。
优点:整体上按照时间自增排序,并且整个分布式系统内不会产生ID碰撞,并且效率较高

1.2 AUTO 自增策略
需要在创建数据表的时候设置主键自增
不设置主键自增,会报id的value没有默认值
实体字段中配置 @TableId(type = IdType.AUTO)```

@TableId(type = IdType.AUTO)
private Long id;

要想影响所有实体的配置,可以设置全局主键配置


                
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值