【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配置更规范。

相关推荐
敲个大西瓜17 小时前
mybatis拦截器插件实现数据库字段加解密
mybatis
武子康20 小时前
Java-28 深入浅出 Spring 实现简易Ioc-04 在上节的业务下手动实现AOP
java·后端·mybatis
一条泥憨鱼20 小时前
苍穹外卖【day6|微信登录与商品浏览功能】
后端·mybatis·苍穹外卖
vx-Biye_Design21 小时前
springboot安阳地区研学旅游服务小程序-计算机毕业设计源码12785
java·vue.js·windows·spring boot·tomcat·maven·mybatis
摇滚侠21 小时前
MyBatis+Spring+SpringMVC SSM 整合 179-185
java·spring·mybatis
摇滚侠1 天前
MyBatis+Spring+SpringMVC SSM ContextLoaderListener 177-178
java·spring·mybatis
Spring小子2 天前
【Spring Boot + Vue + DeepSeek】从零打造一个AI驱动的智能健康分析系统
java·spring boot·mybatis
武子康2 天前
Java-27 深入浅出 Spring - 实现简易Ioc-03 在上节的业务下手动实现IoC 从 XML 配置到 BeanFactory 反射注入
java·后端·mybatis
柏舟飞流2 天前
Spring Boot 进阶实战:整合 MyBatis、Redis、JWT,搭一个更像真实项目的后端服务
spring boot·redis·mybatis
z_鑫2 天前
深入理解MyBatis:collection集合封装的底层原理与实现细节
java·开发语言·数据库·spring boot·mybatis