Springboot3整合MyBatis实现数据库操作
安装软件
MySQL5.7或8.x、Navicat(数据可视化工具)
创建数据库
新建数据库,配置字符集和编码

新建表
所有表的主键名称叫id,都是自动递增的,id是唯一的数据,删除之后无法再填充回去。比如删除 id=2 这个数据,那么 id=2 就永远没有了
admin表结构
CREATE TABLE `admin` (
`id` int NOT NULL AUTO_INCREMENT COMMENT 'ID',
`username` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '账号',
`password` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '密码',
`name` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '名称',
`phone` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '手机',
`email` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '邮箱',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='管理员信息';
设置 username 唯一(可以不进行这一步)

测试查询操作
SELECT * FROM admin WHERE Id=1;

SpringBoot 集成 Mybatis
Mybatis 官网:https://mybatis.org/mybatis-3/zh_CN/index.html
在 pom.xml 里面添加 Mysql 依赖和 Mybatis 依赖
<dependency>
<groupId>com.mysql</groupId>
<artifactId>mysql-connector-j</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter-test</artifactId>
<version>3.0.3</version>
</dependency>
springboot 配置数据库 Mybatis
application.yml 里面的配置
# 数据库连接配置
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
username: root
password: 123456
url: jdbc:mysql://localhost:3306/code?serverTimezone=Asia/Shanghai&useSSL=false&allowPublicKeyRetrieval=true
#配置mybatis实体和xml映射
mybatis:
## 映射xml
mapper-locations: classpath:mapper/*.xml
configuration:
#配置日志
log-impl: org.apache.ibatis.logging.stdout.stdOutImpl
map-underscore-to-camel-case: true
classpath:表示 resources 的目录
创建实体类Admin
package com.example.entity;
创建 mapper 文件夹
/**
* 管理员信息
*/
public class Admin {
private Integer id;
private String name;
private String password;
private String email;
private String phone;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
}
创建 AdminMapper.xml 文件
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"https://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.mapper.AdminMapper">
<select id="selectAll" resultType="com.example.entity.Admin">
select * from `admin` order by id desc
</select>
</mapper>
创建 mapper 接口层
package com.example.mapper;
import com.example.entity.Admin;
import java.util.List;
public interface AdminMapper {
List<Admin> selectAll();
}
在启动类上面扫描 mapper 接口层

Mapper 接口和Mapper.xml 的关系
Mapper 定义接口方法
Mapper.xml 实现方法(SQL 语句实现)
下载插件 MybatisX

连接数据库写一个查询接口
AdminController
package com.example.controller;
import com.example.common.Result;
import com.example.entity.Admin;
import com.example.service.AdminService;
import jakarta.annotation.Resource;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@RestController
@RequestMapping("/admin")
public class AdminController {
@Resource
AdminService adminService;
@GetMapping("/selectAll") //完整的请求路径: http:/ip:port/admin/selectAll
public Result selectAll() {
List<Admin> adminList = adminService.selectAll();
return Result.success(adminList);
}
}
AdminService
package com.example.service;
import com.example.entity.Admin;
import com.example.exception.CustomerException;
import com.example.mapper.AdminMapper;
import jakarta.annotation.Resource;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class AdminService {
@Resource
AdminMapper adminMapper;
public List<Admin> selectAll(){
return adminMapper.selectAll();
}
}
AdminMapper
package com.example.mapper;
import com.example.entity.Admin;
import java.util.List;
public interface AdminMapper {
List<Admin> selectAll();
}
AdminMapper.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"https://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.mapper.AdminMapper">
<select id="selectAll" resultType="com.example.entity.Admin">
select * from `admin` order by id desc
</select>
</mapper>
测试查询结果
测试结果:
http://localhost:9999/admin/selectAll


浙公网安备 33010602011771号