SqlDataAccessUtil package org.onepiece;import org.apache.ibatis.io.Resources;import org.apache.ibatis.session.SqlSession;import org.apache.ibatis.session.SqlSessionFactory;import org.apache.ibatis.session.SqlSessionFactoryBuilder;import jav
package org.onepiece; import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; import java.io.IOException; import java.io.InputStream; public class SqlDataAccessUtil { private final static ClasslockObj = SqlDataAccessUtil.class; //数据库的连接池,数据库的连接资源 private static SqlSessionFactory sqlSessionFactory = null; private final static String xmlResource = "mybatis-config.xml"; private static SqlSessionFactory getSqlSessionFactoryImpl() throws IOException { //加锁,防止在多线程中多次实例化sqlSessionFactory对象 //为了保证sqlSessionFactory的唯一性 synchronized (lockObj) { if (sqlSessionFactory != null) { return sqlSessionFactory; } else { //String resource = "mybatis-config.xml"; InputStream inputStream = null; try { inputStream = Resources.getResourceAsStream(xmlResource); sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); } finally { if (inputStream != null) { inputStream.close(); } } return sqlSessionFactory; } } } protected SqlSessionFactory getSqlSessionFactory() throws IOException { if(sqlSessionFactory == null){ sqlSessionFactory = getSqlSessionFactoryImpl(); } return sqlSessionFactory; } public SqlSession getSqlSession() throws IOException { if (sqlSessionFactory == null) { sqlSessionFactory = getSqlSessionFactory(); } return sqlSessionFactory.openSession(); } public SqlSession getSqlSession(boolean isNewOpen) throws IOException { if (sqlSessionFactory == null) { sqlSessionFactory = getSqlSessionFactory(); } return sqlSessionFactory.openSession(isNewOpen); } }