Skip to content

14. Spring Boot整合Mybatis-配置文件形式

14.1. 创建项目

并依赖web启动、jdbc启动器、thymeleaf、mysql驱动、mybatis的启动器

img

img

项目依赖

xml
<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <parent>

        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.4.4</version>
        <relativePath></relativePath>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>p09-springboot-mybatis</artifactId>

    <name>p09-springboot-mybatis</name>


    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.source>11</maven.compiler.source>
        <maven.compiler.target>11</maven.compiler.target>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>

        <!-- JDBC-启动器, 默认的数据源 HikariCP -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>

        <!-- JDBC-启动器, 默认的数据源 HikariCP -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>

        <!-- https://mvnrepository.com/artifact/org.mybatis.spring.boot/mybatis-spring-boot-starter -->
        <!-- https://mvnrepository.com/artifact/org.mybatis.spring.boot/mybatis-spring-boot-starter -->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.2.2</version>
        </dependency>

    </dependencies>

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


</project>

14.2. 配置数据源

https://blog.csdn.net/desperado0726/article/details/104533276/

在yml文件中配置数据源

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

14.3. 通过工具生成单表的mybatis操作类

14.3.2. Mapper.xml

xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.neuedu.boot.mapper.UserMapper">

    <select id="list" resultType="map">
        select * from user
    </select>

</mapper>

14.3.3. Mapper.Java

java
package com.neuedu.boot.mapper;

import org.apache.ibatis.annotations.Mapper;

import java.util.List;


public interface UserMapper {

    List list();
}

14.4. 配置boot整合mybatis

1 配置mybatis的mapper文件所在的位置、以及类别名、二级缓存等

yaml
mybatis:
#  typeAliasesPackage: com.neuedu.entity
  mapper-locations: classpath*:com/neuedu/boot/mapper/*.xml

2) 在运行类上添加@MapperScan注解

java
package com.neuedu.boot;

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

/**
 * Hello world!
 *
 */
@SpringBootApplication
@MapperScan("com.neuedu.boot.mapper")
public class AppMyBatis
{
    public static void main( String[] args )
    {
        SpringApplication.run(AppMyBatis.class, args);
    }
}

14.5. 单元测试

java
package com.neuedu.boot.mapper;

import com.neuedu.boot.AppMyBatis;
import com.neuedu.boot.entity.Menu;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

import java.util.List;

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

/**
 * 项目:      springboot
 * 类名:       MenuMapperTest
 * 创建时间:  2024/3/29 12:28
 * 描述 :
 * 作者 :     张金山
 * QQ :     314649444
 * Site:      https://jshand.gitee.io
 */
@SpringBootTest(classes = AppMyBatis.class)
class MenuMapperTest {

    @Autowired
    MenuMapper menuMapper;

    @Test
    void selectByExample() {

        List<Menu> menus = menuMapper.selectByExample(null);
        System.out.println("menus = " + menus);
        
    }
}

14.6 整合vue

前后端分离项目使用

前端:vue2

​ 路由 axios elementui

后端 springboot +mybaits

CRUD

14.6.1 创建脚手架项目

使用命令行执行 vue的创建动作

bat
vue create  vue2_v1

npm install    --registry=https://registry.npmmirror.com

14.6.1 安装依赖、

​ 路由 axios elementui

bash
npm install vuex vuex-persist  vue-router@3  element-ui axios    --registry=https://registry.npmmirror.com

14.6.2 完成后端的CRUD的功能

​ Controller、Service Mapper

后端处理跨域的方案, @CrossOrigin

14.6.3 调整项目机构

  • ​ MIS elementui 菜单
  • 编写路由的路由表
    • /dept /views/dept/index.vue

14.6.4 编写dept的列表功能

14.6.5 编写dept的添加功能

14.6.6 编写dept的修改

14.6.7 编写dept的修改

Released under the MIT License.