MyBatisPlus ---- 入门案例

MyBatisPlus ---- 入门案例

  • 1. 开发环境
  • 2. 创建数据库及表
    • a>创建表
    • b>添加数据
  • 3. 创建SpringBoot工程
    • a>初始化工程
    • b>引入依赖
    • c>idea中安装lombok插件
  • 4. 编写代码
    • a>配置application.yml
    • b>启动类
    • c>添加实体
    • d>添加mapper
    • e>测试
    • f>添加日志

1. 开发环境

IDE:idea 2022
JDK:JDK8+
构建工具:maven 3.8.1
MySql 版本:MySql 8
Spring Boot:2.6.3
MyBatis 版本:MyBatis 3.5.1

2. 创建数据库及表

a>创建表

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;

MyBatisPlus ---- 入门案例_第1张图片

b>添加数据

INSERT INTO user (id, name, age, email) VALUES
(1, 'Jone', 18, '[email protected]'),
(2, 'Jack', 20, '[email protected]'),
(3, 'Tom', 28, '[email protected]'),
(4, 'Sandy', 21, '[email protected]'),
(5, 'Billie', 24, '[email protected]');

MyBatisPlus ---- 入门案例_第2张图片

3. 创建SpringBoot工程

a>初始化工程

使用 Spring Initializr 快速初始化一个 SpringBoot 工程
MyBatisPlus ---- 入门案例_第3张图片
MyBatisPlus ---- 入门案例_第4张图片

b>引入依赖

        <dependency>
            <groupId>org.springframework.bootgroupId>
            <artifactId>spring-boot-starter-testartifactId>
            <scope>testscope>
            <exclusions>
                <exclusion>
                    <groupId>org.junit.vintagegroupId>
                    <artifactId>junit-vintage-engineartifactId>
                exclusion>
            exclusions>
        dependency>

        
        <dependency>
            <groupId>com.baomidougroupId>
            <artifactId>mybatis-plus-boot-starterartifactId>
            <version>3.5.1version>
        dependency>

        
        <dependency>
            <groupId>org.projectlombokgroupId>
            <artifactId>lombokartifactId>
            <optional>trueoptional>
        dependency>

        
        <dependency>
            <groupId>mysqlgroupId>
            <artifactId>mysql-connector-javaartifactId>
            <scope>runtimescope>
        dependency>
    dependencies>

c>idea中安装lombok插件

MyBatisPlus ---- 入门案例_第5张图片

4. 编写代码

a>配置application.yml

# 应用名称
#spring.application.name=MyBatisPlus

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

注意

  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 ‘Öйú±ê׼ʱ¼ä’ is unrecognized or represents more

b>启动类

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

package com.fickler.mybatisplus;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
@MapperScan("com.fickler.mybatisplus.mapper")
public class MyBatisPlusApplication {

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

}

c>添加实体

package com.fickler.mybatisplus.pojo;

import lombok.Data;

/**
 * @author dell
 * @version 1.0
 */

@Data
public class User {

    private Long id;
    private String name;
    private Integer age;
    private String email;

}

User 类编译之后的结果:
MyBatisPlus ---- 入门案例_第6张图片

d>添加mapper

package com.fickler.mybatisplus.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.fickler.mybatisplus.pojo.User;

/**
 * @author dell
 * @version 1.0
 */
public interface UserMapper extends BaseMapper<User> {
}

e>测试

package com.fickler.mybatisplus;

import com.fickler.mybatisplus.mapper.UserMapper;
import com.fickler.mybatisplus.pojo.User;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

import java.util.List;

/**
 * @author dell
 * @version 1.0
 */

@SpringBootTest
public class MyBatisPlusTest {

    @Autowired
    private UserMapper userMapper;

    @Test
    public void testSelectList(){

        List<User> users = userMapper.selectList(null);
        users.forEach(user -> System.out.println(user));

    }

}

结果

IDEA 在 userMapper 处报错,是因为找不到注入的对象,因为类是动态创建的,但是程序可以正确的执行。
为了避免报错,可以在 mapper 接口上添加 @Respository 注解

f>添加日志

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

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