Mybatis-plus使用--集成MP

79 阅读2分钟

集成准备

  • Mybatis
  • Spring
  • maven

1.创建测试表

-- 创建库 
	CREATE DATABASE mp; 
-- 使用库 
	USE mp; 
-- 创建表
	CREATE TABLE user( 
		id INT(11) PRIMARY KEY AUTO_INCREMENT, 
		last_name VARCHAR(50),
		email VARCHAR(50),
		gender CHAR(1), 
		age INT 
	); 
	INSERT INTO tbl_employee(last_name,email,gender,age) VALUES('Tom','tom@atguigu.com',1,22);
	INSERT INTO tbl_employee(last_name,email,gender,age) VALUES('Jerry','jerry@atguigu.com',0,25); 
	INSERT INTO tbl_employee(last_name,email,gender,age) VALUES('Black','black@atguigu.com',1,30);
	INSERT INTO tbl_employee(last_name,email,gender,age) VALUES('White','white@atguigu.com',0,35);

2.创建javaBean

创建一个SpringBoot项目,并选择需要的一些依赖(也可以创建之后pom文件进行添加)

Mybatis-plus创建项目

这里使用的SpringBoot的版本是2.4.1,附注pom文件

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.4.1</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.mybatis-plus-studty</groupId>
    <artifactId>demo</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>demo</name>
    <description>Demo project for Spring Boot</description>

    <properties>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

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

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <excludes>
                        <exclude>
                            <groupId>org.projectlombok</groupId>
                            <artifactId>lombok</artifactId>
                        </exclude>
                    </excludes>
                </configuration>
            </plugin>
        </plugins>
    </build>

</project>

3.数据源配置(yml文件)

spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://127.0.0.1:3306/mp?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true
    username: root
    password: 123456

4.编写实体类,Mapper层,启动类添加注解

实体类

package com.mybatisplusstudty.entity.entity;

import lombok.Data;

import java.io.Serializable;

/**
 * (User)实体类
 *
 * @author makejava
 * @since 2021-01-07 15:09:16
 */
@Data
public class User implements Serializable {
    private static final long serialVersionUID = -34309112287712354L;

    private Integer id;

    private String lastName;

    private String email;

    private String gender;

    private Integer age;

}

Mapper层

package com.mybatisplusstudty.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.mybatisplusstudty.entity.entity.User;

/**
 * @Program: mybatisplus
 * @Description
 * @Author: 涛涛 * ^ *
 * @Create: 2021-01-07 15:12
 **/
public interface UserMapper extends BaseMapper<User> {
}

启动类添加注解(用来扫描mapper的包)

package com.mybatisplusstudty;

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

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

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

}

5.测试

package com.mybatisplusstudty.mapper;

import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

import static org.junit.jupiter.api.Assertions.*;

/**
 * @Description:
 * @Author: 涛涛 *^*
 * @Date: 2021/1/7 15:13
 */
@SpringBootTest
class UserMapperTest {

    @Autowired
    private UserMapper userMapper;

    @Test
    void test() {
        userMapper.selectList(null).forEach(System.out::println);
    }


}


User(id=1, lastName=Tom, email=tom@atguigu.com, gender=1, age=22)
User(id=2, lastName=Jerry, email=jerry@atguigu.com, gender=0, age=25)
User(id=3, lastName=Black, email=black@atguigu.com, gender=1, age=30)
User(id=4, lastName=White, email=white@atguigu.com, gender=0, age=35)

运行过程中并没有打印出我们执行过程中的sql语句

配置文件添加打印SQL

mybatis-plus:
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl


JDBC Connection [HikariProxyConnection@1878045132 wrapping com.mysql.cj.jdbc.ConnectionImpl@3b55dd15] will not be managed by Spring
==>  Preparing: SELECT id,last_name,email,gender,age FROM user 
==> Parameters: 
<==    Columns: id, last_name, email, gender, age
<==        Row: 1, Tom, tom@atguigu.com, 1, 22
<==        Row: 2, Jerry, jerry@atguigu.com, 0, 25
<==        Row: 3, Black, black@atguigu.com, 1, 30
<==        Row: 4, White, white@atguigu.com, 0, 35
<==      Total: 4
Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@31e130bf]
User(id=1, lastName=Tom, email=tom@atguigu.com, gender=1, age=22)
User(id=2, lastName=Jerry, email=jerry@atguigu.com, gender=0, age=25)
User(id=3, lastName=Black, email=black@atguigu.com, gender=1, age=30)
User(id=4, lastName=White, email=white@atguigu.com, gender=0, age=35)