Java 中 Spring Boot 使用 MyBatis 访问 MySql 数据库

2023-07-25 14:53:30 浏览数 (1)

上一篇文章,我们也介绍了访问 MySql 数据库 - Java 中 Spring Boot 使用 JdbcTemplate 访问 MySql 数据库。本文我们介绍 JavaSpring Boot 使用 MyBatis 访问 MySql 数据库。

MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。

代码演示的环境见文章 - Java 中 Spring Boot 使用 JdbcTemplate 访问 MySql 数据库。

添加依赖

pom.xml 中添加 myBatis 依赖:

代码语言:javascript复制
<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 中配置数据库信息如下:

代码语言:javascript复制
# 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 表来测试:

表包含 idnameage 字段。

创建 User 表映射

我们新建 User.java 文件:

代码语言:javascript复制
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 文件:

代码语言:javascript复制
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);
}

我们定义了接口文件,对表进行查询(根据姓名)和数据的插入。

读者可自行验证操作数据的插入和读取

0 人点赞