• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
xiaobingle
博客园    首页    新随笔    联系   管理    订阅  订阅

不启动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() {
}


}
 
 
公共构建方法 -- 获取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连接");
}
}
 
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>
 
 
 
 
 
 
xiaobingoog每天都会写博客。 留下xiaobingoog的小技术。 也许在某年的某一天, 当xiaobinggoog在次看到这个博客时, 会为当初不辞辛苦的, 只为留下这片记忆。 感谢xiaobingoog
posted @ 2023-07-29 23:28  xiaobingle  阅读(197)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3