SpringBoot整合Mybatis

一、前言

1.SpringBoot对大量的资源进行了版本规范,但是没有对mybatis进行整合。
2.本次就简单的基本整合。
3.源码github地址https://github.com/673161863-beinuan/SpringBoot-mybatis.git

二、整合步骤

1.首先就是pom文件到jar包,当前可以选择快速搭建直接勾选的方式。前提是需要有网。

  <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.2.0.RELEASE</version>
        <relativePath/>
    </parent>

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

    <dependencies>
        <!-- web依赖-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <!--数据源-->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.1.12</version>
        </dependency>
        <!--mybatis依赖-->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.1.0</version>
        </dependency>

        <!--mysql数据库驱动-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-configuration-processor</artifactId>
        </dependency>
        <!--测试依赖-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
            <exclusions>
                <exclusion>
                    <groupId>org.junit.vintage</groupId>
                    <artifactId>junit-vintage-engine</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

2.既然是整合mybatis,新建一个数据库把
(1)建库

CREATE DATABASE IF NOT EXISTS springboot_mybatis CHARACTER SET utf8; 

(2)建表

CREATE TABLE `springboot_mybatis`.`tb_user`( `user_id` INT NOT NULL AUTO_INCREMENT, `username` VARCHAR(100), `password` VARCHAR(100), `nickname` VARCHAR(100), `email` VARCHAR(100), PRIMARY KEY (`user_id`) ) ENGINE=INNODB CHARSET=utf8; 

3.在resource资源目录建一个application.yml,填写数据源信息,注意密码或库名的不同
在这里插入图片描述

spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/springboot_mybatis?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone = GMT
    username: root
    password: 123456

4.建一个测试类看看连接上数据库了么。打印结果不为null,不抛异常就行。
在这里插入图片描述

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

import javax.sql.DataSource;
import java.sql.SQLException;


@SpringBootTest
public class AppTest {


    @Autowired
    private DataSource dataSource;

    @Test
    public void testConnection() throws SQLException {
        System.out.println(dataSource.getConnection());
    }
}

5.下面开始建类建接口和mapper文件
(1)建实体类

public class User {

    private Integer userId;
    private String username;
    private String password;
    private String nickname;
    private String email;

    public User() {
    }

    public User(Integer userId, String username, String password, String nickname, String email) {
        this.userId = userId;
        this.username = username;
        this.password = password;
        this.nickname = nickname;
        this.email = email;
    }

    public Integer getUserId() {
        return userId;
    }

    public void setUserId(Integer userId) {
        this.userId = userId;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getNickname() {
        return nickname;
    }

    public void setNickname(String nickname) {
        this.nickname = nickname;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    @Override
    public String toString() {
        return "User{" +
                "userId=" + userId +
                ", username='" + username + '\'' +
                ", password='" + password + '\'' +
                ", nickname='" + nickname + '\'' +
                ", email='" + email + '\'' +
                '}';
    }
}

(2)建接口,注意@Mapper这个注解

import com.beinuan.spring.boot.bean.User;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

@Mapper  // 加mapper注解后springboot才会扫描到接口
public interface UserMapper {


    // 查询所有记录
    List<User> getAll();

    // 添加一条记录
    void insertUser(User user);

}

(3)UserMapper 的对应mapper映射文件,注意命名空间和方法名要与xml文件里对应。
在这里插入图片描述

<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
>
    >
        insert into tb_user(username,password,nickname,email)
        values (#{username},#{password},#{nickname},#{email});
    >