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

相关推荐
czlczl2002092517 小时前
MyBatis-Plus SQL自动填充字段
sql·tomcat·mybatis
独断万古他化17 小时前
【MyBatis-Plus 进阶】注解配置、条件构造器与自定义 SQL的复杂操作详解
sql·mybatis·mybatis-plus·条件构造器
马猴烧酒.1 天前
【JAVA数据传输】Java 数据传输与转换详解笔记
java·数据库·笔记·tomcat·mybatis
962464i2 天前
mybatis-plus生成代码
java·开发语言·mybatis
小信丶2 天前
@MappedJdbcTypes 注解详解:应用场景与实战示例
java·数据库·spring boot·后端·mybatis
palomua2 天前
MyBatis-Plus实体类新增字段导致存量接口报错问题
数据库·mybatis
椎4952 天前
MybatisPlus插件-简化代码开发
mybatis
root666/2 天前
【Java-后端-Mybatis】DISTINCT 作用
数据库·sql·mybatis
墨雨晨曦882 天前
MyBatis框架篇
java·开发语言·mybatis
爱敲代码的小鱼2 天前
Mybatis:
java·开发语言·mybatis