使用 MyBatis 实现 MySQL 存储的指南

随着技术的发展,MyBatis 成为了 Java 开发中非常常用的持久层框架之一。特别是在与 MySQL 数据库结合使用时,MyBatis 使得数据库操作变得更加简单和灵活。本文将引导你通过一个简单的步骤,来使用 MyBatis 进行 MySQL 的存储操作。

过程概述

下面是整个流程的简要步骤:

步骤 描述
1 创建数据库和表
2 创建 Maven 项目并添加 MyBatis 依赖
3 配置 MyBatis
4 创建 Java 实体类
5 编写 Mapper 接口和 XML 文件
6 编写测试代码并执行

每一步详细过程

1. 创建数据库和表

首先,在 MySQL 中创建一个数据库 test_db,并创建一个名为 user 的表。

CREATE DATABASE test_db;

USE test_db;

CREATE TABLE user (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(50) NOT NULL,
    age INT NOT NULL
);

2. 创建 Maven 项目并添加 MyBatis 依赖

在你的 Maven pom.xml 文件中,添加 MyBatis 和 MySQL 的依赖:

<dependencies>
    <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis</artifactId>
        <version>3.5.6</version>
    </dependency>
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>8.0.25</version>
    </dependency>
</dependencies>

3. 配置 MyBatis

在项目的资源目录下创建一个 mybatis-config.xml 文件,并配置数据库连接:

<configuration>
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/test_db"/>
                <property name="username" value="root"/>
                <property name="password" value="yourpassword"/> <!-- 替换为你的 MySQL 密码 -->
            </dataSource>
        </environment>
    </environments>
</configuration>

4. 创建 Java 实体类

创建一个与 user 表映射的 Java 类:

public class User {
    private Integer id;  // 用户ID
    private String name; // 用户名
    private Integer age; // 用户年龄

    // 省略 getter 和 setter 方法
}

5. 编写 Mapper 接口和 XML 文件

创建一个 Mapper 接口 UserMapper

public interface UserMapper {
    void insertUser(User user); // 插入用户
}

然后,在资源目录下创建一个 XML 文件 UserMapper.xml

<mapper namespace="com.example.UserMapper">
    <insert id="insertUser" parameterType="com.example.User">
        INSERT INTO user (name, age) VALUES (#{name}, #{age});
    </insert>
</mapper>

6. 编写测试代码并执行

创建一个测试类来执行插入操作:

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

import java.io.IOException;
import java.io.InputStream;

public class Main {
    public static void main(String[] args) {
        String resource = "mybatis-config.xml"; // MyBatis 配置文件
        try {
            InputStream inputStream = Resources.getResourceAsStream(resource);
            SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
            SqlSession sqlSession = sqlSessionFactory.openSession();

            UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
            User user = new User();
            user.setName("Alice");
            user.setAge(25);

            // 插入用户
            userMapper.insertUser(user);
            sqlSession.commit(); // 提交事务

            sqlSession.close(); // 关闭会话
        } catch (IOException e) {
            e.printStackTrace(); // 处理异常打印
        }
    }
}

类图

classDiagram
    class User {
        +Integer id
        +String name
        +Integer age
        +getId()
        +setId(Integer id)
        +getName()
        +setName(String name)
        +getAge()
        +setAge(Integer age)
    }
    class UserMapper {
        +insertUser(User user)
    }

结尾

通过以上步骤,你已经完成了使用 MyBatis 实现 MySQL 存储的完整流程。这个流程在实际开发中通常用于数据的增、删、改、查操作。在后续的项目中,你可以通过类似的步骤,实现更复杂的数据库操作,提高开发效率。如果你有任何问题或需要进一步的帮助,请随时与我联系!