Mybatis环境配置与测试

MyBatis 是一个优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。下面是配置 MyBatis 环境的详细步骤,并包含一个简单的测试示例。

1. 添加依赖

首先,在 Maven 的 pom.xml 文件中添加 MyBatis 和数据库连接驱动的依赖。以 MySQL 为例:


    
    
        org.mybatis
        mybatis
        3.5.6
    
    
    
        mysql
        mysql-connector-java
        8.0.22
    

2. 数据库配置

在实际应用中,通常会创建一个 mybatis-config.xml 文件来配置 MyBatis,包括数据源、事务管理器等信息。




    
        
            
            
                
                
                
                
            
        
    
    
        
    

3. 创建实体类和映射文件

假设你有一个 User 表,创建对应的实体类 User.java 和映射文件 UserMapper.xml

// User.java
public class User {
    private int id;
    private String name;
    private String email;
    // getter and setter 方法
}




    

4. 创建 Mapper 接口

创建一个 Mapper 接口,声明你需要执行的数据库操作。

// UserMapper.java
package com.example.mapper;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
@Mapper
public interface UserMapper {
    @Select("SELECT * FROM User WHERE id = #{id}")
    User selectUser(int id);
}

5. 编写测试类

编写一个简单的测试类来测试 MyBatis 的配置和功能。

// MyBatisTest.java
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*;

为了测试 MyBatis 的配置和功能,你首先需要一个 MyBatis 配置文件(例如 mybatis-config.xml)和一个映射文件(例如 UserMapper.xml)。这里是一个简单的示例:

mybatis-config.xml




    
        
            
            
                
                
                
                
            
        
    
    
        
    

UserMapper.xml




    
        INSERT INTO user (name, age) VALUES (#{name}, #{age})
    
    
        DELETE FROM user WHERE id = #{id}
    
    
        UPDATE user SET name = #{name}, age = #{age} WHERE id = #{id}
    
    

User.java

package com.example.model;
public class User {
    private int id;
    private String name;
    private int age;
    // getter and setter
}

UserMapper.java

package com.example.mapper;
import com.example.model.User;
public interface UserMapper {
    void insertUser(User user);
    void deleteUser(int id);
    void updateUser(User user);
    User selectUser(int id);
}

TestMyBatis.java

import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*;
class TestMyBatis {
    
    @Test
    void testInsert() throws Exception {
        SqlSessionFactory sqlSessionFactory = ...; // 获取 SqlSessionFactory
        try (SqlSession session = sqlSessionFactory.openSession()) {
            UserMapper mapper = session.getMapper(UserMapper.class);
            User user = new User();
            user.setName("John");
            user.setAge(25);
            mapper.insertUser(user);
            session.commit();
        }
    }

你可能感兴趣的:(后端)