【Java】【SpringBoot】SpringBoot整合MybatisPlus(快速入门)

lyj00436 / 2024-09-27 / 原文

对于复杂业务,需要连接多张表单,Mybatis plus不够灵活,隐藏了代码,也不能更好地调试;对于简单业务,小型团队,能够更快速的迭代上线。这里依据官网,简单的快速入门。

前提条件

  • 已安装Java的JDK
  • 已安装maven。并配置和建立Maven的本地仓库
  • 已安装IDEA开发工具
  • 可连接的数据库mysql

测试数据如下:

DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
    `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
    `username` varchar(50) DEFAULT NULL COMMENT '用户名',
    `password` varchar(50) DEFAULT NULL COMMENT '密码',
    `name` varchar(50) DEFAULT NULL COMMENT '姓名',
    `age` int DEFAULT NULL COMMENT '年龄',
    `email` varchar(50) DEFAULT NULL COMMENT '邮箱',
    PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;
insert  into `user`(`id`,`username`,`password`,`name`,`age`,`email`) values (1,'张三','123456',NULL,NULL,NULL),(2,'李四','123456',NULL,NULL,NULL)

项目依赖

Springboot2 添加项目依赖

<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>3.5.7</version>
</dependency>

如果项目为SpringBoot3,则添加如下项目依赖:

<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-spring-boot3-starter</artifactId>
    <version>3.5.7</version>
</dependency>

数据库配置

在application中添加数据库配置

 1 # DataSource Config
 2 spring:
 3   datasource:
 4     driver-class-name: org.h2.Driver
 5     username: root
 6     password: test
 7   sql:
 8     init:
 9       schema-locations: classpath:db/schema-h2.sql
10       data-locations: classpath:db/data-h2.sql

 一般来说,扫描文件应该配置在配置文件中。这里,为了快速入门,直接在启动项目中添加@MapperScan注解。

1 @SpringBootApplication
2 @MapperScan("com.example.demo1.mapper")
3 public class DemoApplication {
4 
5     public static void main(String[] args) {
6         SpringApplication.run(DemoApplication.class, args);
7     }
8 
9 }

添加实体类

@TableName(value ="user")
@Data
public class User implements Serializable {
    /**
     * 主键
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;

    /**
     * 用户名
     */
    @TableField(value = "username")
    private String username;

    /**
     * 密码
     */
    @TableField(value = "password")
    private String password;

    /**
     * 姓名
     */
    @TableField(value = "name")
    private String name;

    /**
     * 年龄
     */
    @TableField(value = "age")
    private Integer age;

    /**
     * 邮箱
     */
    @TableField(value = "email")
    private String email;
    
}

和Mapper方法

public interface UserMapper extends BaseMapper<User> {

}

添加测试

@SpringBootTest
public class SampleTest {

    @Autowired
    private UserMapper userMapper;

    @Test
    public void testSelect() {
        System.out.println(("----- selectAll method test ------"));
        List<User> userList = userMapper.selectList(null);
        Assert.isTrue(5 == userList.size(), "");
        userList.forEach(System.out::println);
    }

}