上一篇文章,我们也介绍了访问 MySql
数据库 - Java 中 Spring Boot 使用 JdbcTemplate 访问 MySql 数据库。本文我们介绍 Java
中 Spring Boot
使用 MyBatis
访问 MySql
数据库。
MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。
代码演示的环境见文章 - Java 中 Spring Boot 使用 JdbcTemplate 访问 MySql 数据库。
添加依赖
在 pom.xml
中添加 myBatis
依赖:
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.13</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.33</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<scope>provided</scope>
</dependency>
截止文章发布,mybatis
这里使用了最新版本 3.5.13
进行 Demo
。
数据库配置信息
在 application.yml
中配置数据库信息如下:
# Server
server:
port: 8081
# DataSource Config
spring:
datasource:
url: jdbc:mysql://localhost:3306/mydb_01
username: root
password:
driver-class-name: com.mysql.cj.jdbc.Driver
当然,你也可以使用 application.properties
的写法。
创建 User 表
在 mysql
数据库 mydb_01
新建一个 User
表来测试:
表包含 id
,name
和 age
字段。
创建 User 表映射
我们新建 User.java
文件:
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@NoArgsConstructor
public class User {
private Long id; // keyword auto increase
private String name;
private Integer age;
public User(String name, Integer age) {
this.name = name;
this.age = age;
}
}
创建 User 表操作
我们新建 UserMapper.java
文件:
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Param;
@Mapper
public interface UserMapper {
@Select("SELECT * FROM USER WHERE NAME = #{name}")
User findByName(@Param("name") String name);
@Insert("INSERT INTO USER(NAME, AGE) VALUES(#{name}, #{age}")
int insert(@Param("name") String name, @Param("age") Integer age);
}
我们定义了接口文件,对表进行查询(根据姓名)和数据的插入。
读者可自行验证操作数据的插入和读取