package com.gxy.util;
import java.io.InputStream;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
public class MyBatisUtil {
private static SqlSessionFactory factory;
//保证service层 进行多次dao操作,公用一个SqlSession对象
private static ThreadLocal<SqlSession> tl = new ThreadLocal<SqlSession>();
static{
try {
String resouce = "mybatis-config.xml"; //代表总配置文件的路径
InputStream is = Resources.getResourceAsStream(resouce);//使用输入流读取配置文件
factory = new SqlSessionFactoryBuilder().build(is);//facotry只需要创建一个
} catch (Exception e) {
e.printStackTrace();
}
}
public static SqlSession getSqlSession(){
SqlSession session = tl.get();
if(session == null) {
session = factory.openSession();
tl.set(session);
}
return session;
}
public static void close(){
SqlSession session = tl.get();
if(session != null){
session.close();
tl.set(null);
}
}
}
全程公用一个SqlSessionFactory
1. 复制MyBatisUtil工具类到util包
2. 修改service配置