import java.io.IOException;
import java.io.InputStream;
import org.apache.ibatis.exceptions.ExceptionFactory;
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 MybatisSessionFactory {
private static final String FILE="mybatis.config.xml";
private static SqlSessionFactory sqlSessionFactory;
public static SqlSession getSession() {
try {
InputStream resourceAsStream = Resources.getResourceAsStream(FILE);
sqlSessionFactory=new SqlSessionFactoryBuilder().build(resourceAsStream);
SqlSession sqlSession=sqlSessionFactory.openSession();
return sqlSession;
} catch (IOException e) {
throw ExceptionFactory.wrapException("Error building SqlSession.", e);
}
// SqlSession sqlSession=THREAD_LOCAL.get();
// if (sqlSession==null){
// if (sqlSessionFactory==null){
// InputStream resourceAsStream=null;
// try {
// resourceAsStream= Resources.getResourceAsStream(FILE);
// } catch (IOException e) {
// e.printStackTrace();
// }
// sqlSessionFactory=new SqlSessionFactoryBuilder().build(resourceAsStream);
// }
// sqlSession=sqlSessionFactory.openSession();
// THREAD_LOCAL.set(sqlSession);
// }
// return sqlSession;
}
private static final ThreadLocal<SqlSession> THREAD_LOCAL=new ThreadLocal<>();
public static void closeSession(){
SqlSession sqlSession = THREAD_LOCAL.get();
THREAD_LOCAL.set(null);
if (sqlSession!=null){
sqlSession.close();
}
}
}