Springboot整合Mybatis
建项目
这里选了MyBatis Plus Framework 和 MySQL Driver两个插件
项目结构
pom.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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.zhou</groupId>
<artifactId>springboot-mybatis</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>springboot-mybatis</name>
<description>Demo project for Spring Boot</description>
<parent>
<artifactId>springboot-vue</artifactId>
<groupId>com.zhou</groupId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<properties>
<java.version>1.8</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
</properties>
<dependencies>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.2.0</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</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.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
</plugins>
</build>
</project>
2、数据库设计
首先创建一个springboot的数据库和user表,user表的结构和数据如下
/*
Navicat Premium Data Transfer
Source Server : localhost_3306
Source Server Type : MySQL
Source Server Version : 80020
Source Host : localhost:3306
Source Schema : springboot
Target Server Type : MySQL
Target Server Version : 80020
File Encoding : 65001
Date: 24/01/2022 16:29:00
*/
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for user
-- ----------------------------
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
`ID` int NOT NULL AUTO_INCREMENT,
`UserName` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
`Password` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
PRIMARY KEY (`ID`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of user
-- ----------------------------
INSERT INTO `user` VALUES (1, '张三', '123456');
INSERT INTO `user` VALUES (2, '李四', '123456');
INSERT INTO `user` VALUES (3, '王五', '123456');
SET FOREIGN_KEY_CHECKS = 1;
3、修改配置文件
配置文件是:springboot-mybatis/src/main/resources/application.properties
application.properties的内容
# 应用名称
spring.application.name=springboot-mybatis
# 数据库驱动:
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
# 数据源名称
spring.datasource.name=springboot
# 数据库连接地址
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/springboot?characterEncoding=UTF8&serverTimezone=GMT%2B8&useSSL=false&useUnicode=true&useOldAliasMetadataBehavior=true
# 数据库用户名&密码:
spring.datasource.username=root
spring.datasource.password=123456
#mapper映射文件地址
mybatis-plus.mapper-locations: classpath:/mapper/*.xml
#id自动增长
mybatis-plus.global-config.db-config.id-type: auto
#逻辑已删除,逻辑未删除
mybatis-plus.global-config.db-config.logic-delete-value: 1
mybatis-plus.global-config.db-config.logic-not-delete-value: 0
#true 开启驼峰命名(数据库user_name,实体类userName),false 不开启
mybatis-plus.configuration.map-underscore-to-camel-case=false
4、编写代码
首先看一下我们需要建的项目结构
4.1 修改启动类 SpringbootMybatisApplication
指定扫描mapper类的包路径
4.2 添加 UserEntity
4.3 添加UserService
4.4添加UserServiceImpl
4.5添加UserDao.xml
4.6 添加UserDao
4.7添加 UserController
4.8 测试UserController中的方法
4.8.1测试新增
数据库中新增成功
4.8.2 测试查询
4.8.3 测试修改
查询结果正确
4.8.4 测试删除
查询结果为空,正常
5、实现动态sql
5.1 修改UserDao.xml
5.2 修改UserDao
5.3在UserController中添加方法
为了方便业务代码都写在这里了,如果要写可以放到UserServiceImpl
5.4测试
5.4.1 测试新增
在代码里面写了新增张三1和李四1
查看数据库
5.4.2 测试修改
查看id为10,修改成功
5.4.3 测试查询
代码里面写了查询内容,这里不传参数
5.4.4 测试删除
查询数据库,UserName=张三 password=123456的一条数据删除成功