【Mybatis】单独测试

在 纯MyBatis测试(不加载Spring) 的方案4中,mybatis-config.xml 是 MyBatis 的核心配置文件,需要你手动创建并放置在项目的资源目录中。以下是具体说明:

  1. 文件位置
    将 mybatis-config.xml 放在项目的 资源目录 下:
powershell 复制代码
src/test/resources/mybatis-config.xml
  1. 配置文件内容示例
powershell 复制代码
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
  PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
  "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
  <!-- 全局设置 -->
  <settings>
    <setting name="mapUnderscoreToCamelCase" value="true"/>
  </settings>
  
  <!-- 配置数据源(需替换为你的数据库信息) -->
  <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/你的数据库名?useSSL=false"/>
        <property name="username" value="用户名"/>
        <property name="password" value="密码"/>
      </dataSource>
    </environment>
  </environments>
  
  <!-- 指定Mapper接口所在的包 -->
  <mappers>
    <package name="com.zykj.moon.order.mapper"/>
  </mappers>
</configuration>
  1. 需要同步修改的测试代码
java 复制代码
public class PureMyBatisTest {
    private static SqlSessionFactory sqlSessionFactory;
    private static PaidGoodsDurationMapper mapper;

    @BeforeAll
    static void setup() throws Exception {
        // 加载MyBatis配置文件
        String resource = "mybatis-config.xml";
        InputStream inputStream = Resources.getResourceAsStream(resource);
        
        // 构建SqlSessionFactory
        sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        
        // 获取Mapper实例
        mapper = sqlSessionFactory.openSession().getMapper(PaidGoodsDurationMapper.class);
    }

    @Test
    void testSelect() {
        PaidGoodsDuration result = mapper.selectExistDuration(9696665, 27L, 1);
        assertNotNull(result);
    }
}
  1. 关键注意事项
    数据库驱动依赖
    确保 pom.xml 中包含数据库驱动:
xml 复制代码
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.28</version>
    <scope>test</scope>
</dependency>

Mapper接口位置

xml 复制代码
<mappers>
  <!-- 方式1:扫描包 -->
  <package name="com.zykj.moon.order.mapper"/>
  
  <!-- 方式2:指定具体Mapper XML文件 -->
  <mapper resource="mapper/PaidGoodsDurationMapper.xml"/>
</mappers>

日志输出(可选)

在 mybatis-config.xml 中添加日志配置:

xml 复制代码
<settings>
  <setting name="logImpl" value="STDOUT_LOGGING"/>
</settings>
  1. 替代方案(无需XML)
    如果不想用XML配置,可以用Java代码直接构建:
java 复制代码
@BeforeAll
static void setup() {
    PooledDataSource dataSource = new PooledDataSource();
    dataSource.setDriver("com.mysql.cj.jdbc.Driver");
    dataSource.setUrl("jdbc:mysql://localhost:3306/test");
    dataSource.setUsername("root");
    dataSource.setPassword("123456");
    
    TransactionFactory transactionFactory = new JdbcTransactionFactory();
    Environment environment = new Environment("dev", transactionFactory, dataSource);
    
    Configuration configuration = new Configuration(environment);
    configuration.addMapper(PaidGoodsDurationMapper.class);
    
    sqlSessionFactory = new SqlSessionFactoryBuilder().build(configuration);
}

总结

方案 优点 缺点
XML配置 配置集中,易于维护 需要额外文件
Java代码配置 灵活,无需XML 硬编码,修改需重新编译

选择哪种方式取决于项目需求。对于简单测试,Java代码配置更直接;对于复杂项目,XML配置更规范。

相关推荐
Zz_waiting.4 小时前
利用 MyBatis 操作数据库完善案例
数据库·mybatis·案例demo
学IT的周星星1 天前
《MyBatis变形记:当SQL遇上“智能管家“》
数据库·sql·mybatis
期待のcode1 天前
MyBatis框架—延迟加载与多级缓存
java·数据库·后端·缓存·mybatis
龙茶清欢1 天前
具有实际开发参考意义的 MyBatis-Plus BaseEntity 基类示例
java·spring boot·spring cloud·mybatis
计算机学姐1 天前
基于微信小程序的扶贫助农系统【2026最新】
java·vue.js·spring boot·mysql·微信小程序·小程序·mybatis
Roye_ack2 天前
【项目实战 Day5】springboot + vue 苍穹外卖系统(Redis + 店铺经营状态模块 完结)
java·spring boot·redis·学习·mybatis
祈祷苍天赐我java之术2 天前
Redis 缓存三大坑:击穿、穿透、雪崩的解析与解决
redis·缓存·mybatis
咖啡Beans3 天前
了解Mybatis拦截器
java·spring boot·mybatis
翟工说3 天前
Mybatis源码(2)-mapper创建过程
mybatis