Skip to content

二、入门案例

1、开发环境

IDE:idea 2019.2

JDK:JDK8+

构建工具:maven 3.5.4

MySQL版本:MySQL 5.7

Spring Boot:2.6.3

MyBatis-Plus:3.5.1

2、创建数据库及表

1、创建表

mysql
CREATE DATABASE `mybatis_plus` /*!40100 DEFAULT CHARACTER SET utf8mb4 */;
use `mybatis_plus`;
CREATE TABLE `user` (
  `id` bigint(20) NOT NULL COMMENT '主键ID', 
  `name` varchar(30) DEFAULT NULL COMMENT '姓名', 
  `age` int(11) DEFAULT NULL COMMENT '年龄', 
  `email` varchar(50) DEFAULT NULL COMMENT '邮箱', 
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

2、添加数据

mysql
INSERT INTO user (id, name, age, email) VALUES
(1, 'Jone', 18, 'test1@baomidou.com'),
(2, 'Jack', 20, 'test2@baomidou.com'),
(3, 'Tom', 28, 'test3@baomidou.com'),
(4, 'Sandy', 21, 'test4@baomidou.com'),
(5, 'Billie', 24, 'test5@baomidou.com');

3、创建Spring Boot工程

1、初始化工程

使用 Spring Initializr 快速初始化一个 Spring Boot 工程

image-20220302155105275

image-20220302155209012

2、引入依赖

xml
<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.5.1</version>
    </dependency>
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <optional>true</optional>
    </dependency>
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <scope>runtime</scope>
    </dependency>
</dependencies>

3、idea中安装lombok插件

image-20220302155257884

4、编写代码配置

1、application.yml

yaml
spring:
# 配置数据源信息 
  datasource: 
# 配置数据源类型
    type: com.zaxxer.hikari.HikariDataSource
# 配置连接数据库信息
   driver-class-name: com.mysql.cj.jdbc.Driver
   url: jdbc:mysql://localhost:3306/mybatis_plus?characterEncoding=utf-8&useSSL=false
   username: root
   password: 123456

注意:

1、驱动类driver-class-name spring boot 2.0(内置jdbc5驱动),驱动类

driver-class-name: com.mysql.jdbc.Driver

spring boot 2.1及以上(内置jdbc8驱动),驱动类使用:

driver-class-name: com.mysql.cj.jdbc.Driver

否则运行测试用例的时候会有 WARN 信息

2、连接地址url

MySQL5.7版本的url:

jdbc:mysql://localhost:3306/mybatis_plus?characterEncoding=utf-8&useSSL=false

MySQL8.0版本的url:

jdbc:mysql://localhost:3306/mybatis_plus? serverTimezone=GMT%2B8&characterEncoding=utf-8&useSSL=false

否则运行测试用例报告如下错误:

java.sql.SQLException: The server time zone value 'ÖÐ1ú±ê×1⁄4ʱ1⁄4ä' is unrecognized or represents more

2、启动类

在Spring Boot启动类中添加@MapperScan注解,扫描mapper包

java
@SpringBootApplication
@MapperScan("com.test.mybatisplus.mapper")
public class MybatisplusApplication {
    public static void main(String[] args) {
        SpringApplication.run(MybatisplusApplication.class, args);
	} 
}

3、添加实体

java
@Data //lombok注解 
public class User {
    private Long id;
    private String name;
    private Integer age;
    private String email;
}

User类编译之后的结果:

image-20220302155755683

4、添加mapper

BaseMapper是MyBatis-Plus提供的模板mapper,其中包含了基本的CRUD方法,泛型为操作的实体类型

java
public interface UserMapper extends BaseMapper<User> {
}

5、测试

java
@SpringBootTest
public class MybatisPlusTest {
    @Autowired
    private UserMapper userMapper;

  @Test
	public void testSelectList(){ 
    //selectList()根据MP内置的条件构造器查询一个list集合,null表示没有条件,即查询所有
    userMapper.selectList(null).forEach(System.out::println);
	} 
}

结果:

image-20220302155942907

注意:

IDEA在 userMapper 处报错,因为找不到注入的对象,因为类是动态创建的,但是程序可以正确的执行。

为了避免报错,可以在mapper接口上添加 @Repository 注解

6、添加日志

在application.yml中配置日志输出

yaml
# 配置MyBatis日志 
mybatis-plus:
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

image-20220302160046235