Maven 整合 MyBatis 实现增删改查:详细代码注释

本文将详细讲解使用 Maven 组件整合 MyBatis 完成数据库增删改查操作,并提供每一行代码的注释说明,帮助你轻松上手 MyBatis。

1. pom.xml (Maven 依赖配置)

<dependencies>
    <!-- MyBatis 核心依赖 -->
    <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis</artifactId>
        <version>3.5.7</version>
    </dependency>
    <!-- MyBatis 与数据库连接池整合 -->
    <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis-spring</artifactId>
        <version>2.0.7</version>
    </dependency>
    <!-- 数据库驱动依赖 -->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>8.0.26</version>
    </dependency>
    <!-- 其他依赖... -->
</dependencies>

2. MyBatis 配置文件 (mybatis-config.xml)

<!DOCTYPE configuration>
<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/dbname"/>
                <property name="username" value="username"/>
                <property name="password" value="password"/>
            </dataSource>
        </environment>
    </environments>

    <!-- 映射器配置 -->
    <mappers>
        <mapper resource="mapper/UserMapper.xml"/>
    </mappers>
</configuration>

3. UserMapper.xml (映射器配置文件)

<!DOCTYPE mapper>
<mapper namespace="com.example.mapper.UserMapper">

    <!-- 查询所有用户 -->
    <select id="findAll" resultType="com.example.entity.User">
        SELECT * FROM user
    </select>

    <!-- 根据 ID 查询用户 -->
    <select id="findById" resultType="com.example.entity.User" parameterType="int">
        SELECT * FROM user WHERE id = #{id}
    </select>

    <!-- 添加用户 -->
    <insert id="addUser" parameterType="com.example.entity.User">
        INSERT INTO user (username, password, age) VALUES (#{username}, #{password}, #{age})
    </insert>

    <!-- 更新用户 -->
    <update id="updateUser" parameterType="com.example.entity.User">
        UPDATE user SET username = #{username}, password = #{password}, age = #{age} WHERE id = #{id}
    </update>

    <!-- 删除用户 -->
    <delete id="deleteUser" parameterType="int">
        DELETE FROM user WHERE id = #{id}
    </delete>
</mapper>

4. UserMapper.java (映射器接口)

package com.example.mapper;

import com.example.entity.User;
import java.util.List;

public interface UserMapper {
    List<User> findAll();
    User findById(int id);
    void addUser(User user);
    void updateUser(User user);
    void deleteUser(int id);
}

5. User.java (实体类)

package com.example.entity;

public class User {
    private int id;
    private String username;
    private String password;
    private int age;

    // 省略构造方法、getter 和 setter...

    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", username='" + username + "'"
                ", password='" + password + "'"
                ", age=" + age +
                '}';
    }
}

6. 使用 MyBatis 完成增删改查的示例代码

import com.example.entity.User;
import com.example.mapper.UserMapper;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

import java.io.InputStream;
import java.util.List;

public class MyBatisExample {
    public static void main(String[] args) {
        // 加载 MyBatis 配置文件
        InputStream configStream = MyBatisExample.class.getResourceAsStream("/mybatis-config.xml");
        SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(configStream);

        // 创建 SqlSession
        try (SqlSession session = sessionFactory.openSession()) {
            // 获取 UserMapper 接口的实例
            UserMapper mapper = session.getMapper(UserMapper.class);

            // 查询所有用户
            List<User> userList = mapper.findAll();
            for (User user : userList) {
                System.out.println(user);
            }

            // 根据 ID 查询用户
            User user = mapper.findById(1);
            System.out.println(user);

            // 添加用户
            User newUser = new User();
            newUser.setUsername("test");
            newUser.setPassword("123456");
            newUser.setAge(18);
            mapper.addUser(newUser);
            session.commit(); // 提交事务

            // 更新用户
            User updateUser = new User();
            updateUser.setId(1);
            updateUser.setUsername("updated");
            updateUser.setPassword("654321");
            updateUser.setAge(20);
            mapper.updateUser(updateUser);
            session.commit(); // 提交事务

            // 删除用户
            mapper.deleteUser(1);
            session.commit(); // 提交事务
        }
    }
}

总结

以上示例使用了 Maven 进行依赖管理,通过 MyBatis 的配置文件指定了数据库连接和映射器配置。在使用 MyBatis 时,可以通过 SqlSession 与数据库交互,通过映射器接口执行 SQL 语句。这是一个简单的 MyBatis 示例,但实际应用中可能会有更复杂的数据库操作和业务逻辑。根据实际需求进行适当修改和扩展。


原文地址: https://www.cveoy.top/t/topic/bGXY 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录