文章目录
1. 什么是MyBatis
MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。
MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。
MyBatis 可以通过简单的 XML 或 注解 来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。
用一句简单的话来概述: MyBatis 是更简单完成程序和数据库交互的工具或 MyBatis 是更简单的操作和读取数据库工具
2. 配置 MyBatis 的开发环境
2.1 准备工作, 创建数据库和表
create database if not exists MyBlogSystem;
use MyBlogSystem;
drop table if exists blog;
-- 创建一个博客表
create table blog (
blogId int primary key auto_increment,
title varchar(1024),
content mediumtext,
postTime datetime,
userId int
);
drop table if exists user;
-- 创建一个用户信息表
create table user (
userId int primary key auto_increment,
username varchar(128) unique,
password varchar(128)
);
2.2 添加 MyBatis 依赖
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.2.2</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
2.3 配置连接字符串和 MyBatis
2.3.1 配置数据库连接信息
spring.datasource.url=jdbc:mysql://localhost:3306/MyBlogSystem?characterEncoding=utf8&useSSL=true
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
2.3.2 配置 MyBatis 中的 XML 路径
配置 mybatis 的文件路径, 在 resources/mapper 创建所有表的xml文件
mybatis.mapper-locations=classpath:mapper/**Mapper.xml
这里必须要一样
2.4 添加代码
2.4.1 添加实体类
添加用户的实体类
@Getter
@Setter
@ToString
public class User {
public int userId;
public String username;
public String password;
}
2.4.2 添加 mapper 接口
@Mapper
public interface UserMapper {
List<User> getAll();
}
2.4.3 添加 UserMapper.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.example.demo.mapper.UserMapper">
</mapper>
这里的 UserMapper.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.example.demo.mapper.UserMapper">
<select id="getAll" resultType="com.example.demo.model.User">
select * from user;
</select>
</mapper>
2.4.4 添加 Service
@Service
public class UserService {
// 记得要注入
@Resource
private UserMapper userMapper;
public List<User> getAll() {
return userMapper.getAll();
}
}
2.4.5 添加 Controller
// 这里的 @RestController 相当于 @Controller + @ResponseBody
@RestController
@RequestMapping("/user")
public class UserController3 {
@Autowired
private UserService userService;
@RequestMapping("/getall")
public List<User> getAll() {
return userService.getAll();
}
}
2.4.6 测试代码
2.5 注意事项
- 注意配置文件中的mapper配置和mapper文件夹的对应
- UserMapper.xml 这里需要一些路径对应, 以及id格式对应 , 这里的resultType是返回的类型.
- 按照业务规定流程写代码
3. MyBatis 的增删改查操作.
3.1 增加操作
步骤:
- 添加 实体类(这里有了就不需要添加了)
- 添加 controller
- 添加 service
- 添加 mapper 接口
- 添加 xml
① 添加 controller 实现代码
@RestController
@RequestMapping("/user")
public class UserController3 {
@Autowired
private UserService userService;
@RequestMapping("/insert")
public Integer insert(User user) {
return userService.insert(user);
}
}
② 添加 service 实现代码
@Service
public class UserService {
// 记得要注入
@Resource
private UserMapper userMapper;
public Integer insert(User user) {