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 Class
 
   lockObj = 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);
    }
}
  
        
        