14. Spring Boot整合Mybatis-配置文件形式
14.1. 创建项目
并依赖web启动、jdbc启动器、thymeleaf、mysql驱动、mybatis的启动器
项目依赖
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的修改