不启动SpringBootApplication 直接测试mybatis 下面xml中的sql
测试类
package com.mapper;
import com.domain.RunoobTbl;
import org.junit.After;
import org.junit.BeforeClass;
import org.junit.Test;
public class RunoobTblMapperTest {
public static boolean openSession = true;
private static RunoobTblMapper mapper;
@BeforeClass
public static void builderRunoobTblMapper(){
mapper = MapperUtils.getMapper(RunoobTblMapper.class, openSession);
}
@After
public void close(){
MapperUtils.close();
System.out.println("方法执行完毕!!!");
}
@Test
public void testSelectByPrimaryKey() {
openSession = false;
RunoobTbl runoobTbl = mapper.selectByPrimaryKey(1);
System.out.println(runoobTbl);
}
@Test
public void testInsert() {
}
}
import com.domain.RunoobTbl;
import org.junit.After;
import org.junit.BeforeClass;
import org.junit.Test;
public class RunoobTblMapperTest {
public static boolean openSession = true;
private static RunoobTblMapper mapper;
@BeforeClass
public static void builderRunoobTblMapper(){
mapper = MapperUtils.getMapper(RunoobTblMapper.class, openSession);
}
@After
public void close(){
MapperUtils.close();
System.out.println("方法执行完毕!!!");
}
@Test
public void testSelectByPrimaryKey() {
openSession = false;
RunoobTbl runoobTbl = mapper.selectByPrimaryKey(1);
System.out.println(runoobTbl);
}
@Test
public void testInsert() {
}
}
公共构建方法 -- 获取mapper
package com.mapper;
import org.apache.ibatis.builder.xml.XMLConfigBuilder;
import org.apache.ibatis.datasource.unpooled.UnpooledDataSource;
import org.apache.ibatis.mapping.Environment;
import org.apache.ibatis.session.Configuration;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.apache.ibatis.transaction.jdbc.JdbcTransactionFactory;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Reader;
public class MapperUtils {
private MapperUtils(){
}
public static boolean openSession = true;
public static SqlSession sqlSession;
public static <T> T getMapper(Class<T> tClass, boolean openSession) {
try {
MapperUtils.openSession = openSession;
return builderSqlSession().getConfiguration().getMapper(tClass, sqlSession);
}catch (Exception e) {
System.out.println("获取mapper错误!!" + e);
}
return null;
}
public static SqlSessionFactory builderSqlSessionFactory(InputStream resourceAsStream){
UnpooledDataSource dataSource = new UnpooledDataSource();
dataSource.setUrl("jdbc:mysql://192.168.56.91:3306/cs007");
dataSource.setUsername("root");
dataSource.setPassword("root");
dataSource.setDefaultNetworkTimeout(30000);
dataSource.setDriver("com.mysql.cj.jdbc.Driver");
Environment environment = new Environment("development", new JdbcTransactionFactory(), dataSource);
assert resourceAsStream != null;
Reader reader = new InputStreamReader(resourceAsStream);
XMLConfigBuilder xmlConfigBuilder = new XMLConfigBuilder(reader, null, null);
Configuration configuration = xmlConfigBuilder.parse();
configuration.setEnvironment(environment);
return new SqlSessionFactoryBuilder().build(configuration);
}
public static SqlSessionFactory builderSqlSession() throws IOException {
SqlSessionFactory sqlSessionFactory = null;
try {
InputStream resourceAsStream = InputStreamUtils.getResourceAsStream("mybatis/Mapper.xml");
sqlSessionFactory = builderSqlSessionFactory(resourceAsStream);
sqlSession = sqlSessionFactory.openSession(openSession);
}catch (Exception e){
System.out.println("获取连接错误" + e);
}finally {
InputStreamUtils.close();
}
return sqlSessionFactory;
}
public static void close() {
sqlSession.close();
System.out.println("关闭sqlSession连接");
}
}
import org.apache.ibatis.builder.xml.XMLConfigBuilder;
import org.apache.ibatis.datasource.unpooled.UnpooledDataSource;
import org.apache.ibatis.mapping.Environment;
import org.apache.ibatis.session.Configuration;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.apache.ibatis.transaction.jdbc.JdbcTransactionFactory;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Reader;
public class MapperUtils {
private MapperUtils(){
}
public static boolean openSession = true;
public static SqlSession sqlSession;
public static <T> T getMapper(Class<T> tClass, boolean openSession) {
try {
MapperUtils.openSession = openSession;
return builderSqlSession().getConfiguration().getMapper(tClass, sqlSession);
}catch (Exception e) {
System.out.println("获取mapper错误!!" + e);
}
return null;
}
public static SqlSessionFactory builderSqlSessionFactory(InputStream resourceAsStream){
UnpooledDataSource dataSource = new UnpooledDataSource();
dataSource.setUrl("jdbc:mysql://192.168.56.91:3306/cs007");
dataSource.setUsername("root");
dataSource.setPassword("root");
dataSource.setDefaultNetworkTimeout(30000);
dataSource.setDriver("com.mysql.cj.jdbc.Driver");
Environment environment = new Environment("development", new JdbcTransactionFactory(), dataSource);
assert resourceAsStream != null;
Reader reader = new InputStreamReader(resourceAsStream);
XMLConfigBuilder xmlConfigBuilder = new XMLConfigBuilder(reader, null, null);
Configuration configuration = xmlConfigBuilder.parse();
configuration.setEnvironment(environment);
return new SqlSessionFactoryBuilder().build(configuration);
}
public static SqlSessionFactory builderSqlSession() throws IOException {
SqlSessionFactory sqlSessionFactory = null;
try {
InputStream resourceAsStream = InputStreamUtils.getResourceAsStream("mybatis/Mapper.xml");
sqlSessionFactory = builderSqlSessionFactory(resourceAsStream);
sqlSession = sqlSessionFactory.openSession(openSession);
}catch (Exception e){
System.out.println("获取连接错误" + e);
}finally {
InputStreamUtils.close();
}
return sqlSessionFactory;
}
public static void close() {
sqlSession.close();
System.out.println("关闭sqlSession连接");
}
}
configuration 配置
<?xml version="1.0" encoding="UTF-8" ?>
<!-- Mybatis config sample -->
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<mappers>
<mapper resource="mapperxml/RunoobTblMapper.xml"/>
</mappers>
</configuration>
<!-- Mybatis config sample -->
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<mappers>
<mapper resource="mapperxml/RunoobTblMapper.xml"/>
</mappers>
</configuration>
xiaobingoog每天都会写博客。
留下xiaobingoog的小技术。
也许在某年的某一天,
当xiaobinggoog在次看到这个博客时,
会为当初不辞辛苦的,
只为留下这片记忆。
感谢xiaobingoog
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· [AI/GPT/综述] AI Agent的设计模式综述