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

相关推荐
星星不打輰10 小时前
SSM项目--SweetHouse 甜蜜蛋糕屋
java·spring·mybatis·ssm·springmvc
代码栈上的思考14 小时前
MyBatis:注解方式实现数据库 CRUD 全操作
java·开发语言·mybatis
꒰ঌ 安卓开发໒꒱17 小时前
一个参数引发的“插入成功却返回 -2147482646”:深入解析 MyBatis 批处理模式陷阱与高性能批量更新方案
mybatis
总会落叶20 小时前
MyBatis XML映射配置与日志系统全解析
xml·tomcat·mybatis
2024暴富21 小时前
SpringBoot基于Mybatis拦截器实现数据权限(图文)
spring boot·spring cloud·mybatis
Billow_lamb1 天前
MyBatis Plus 中常用的插件列表
java·mybatis
silence2501 天前
MyBatis-Plus 报错 Invalid bound statement(insert)?其实是 SqlSessionFactoryBean 踩坑了
mybatis·mybatis-plus
好学且牛逼的马2 天前
原生 JDBC + DbUtils + MyBatis 同场景 Demo(C3P0 数据源 XML 配置版)
xml·mybatis
代码栈上的思考2 天前
MyBatis XML的方式来实现
xml·java·mybatis
Jaising6662 天前
Mybatis Plus 主键生成器实现思路分析
数据库·spring boot·mybatis