SqlDataAccessUtil2 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 ja
          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;
import java.io.Reader;
public class SqlDataAccessUtil2 extends SqlDataAccessUtil
{
    //封装SqlSessionFactory*********************************************************************************************
    private final static Class
 
   lock2 = SqlDataAccessUtil2.class;
    private static SqlSessionFactory sqlSessionFactory2 = null;
    private final static String xmlResource2 = "mybatis-config.xml";
    private static SqlSessionFactory getSqlSessionFactoryImpl2() throws IOException
    {
        //加锁,防止在多线程中多次实例化sqlSessionFactory对象
        //为了保证sqlSessionFactory的唯一性
        synchronized (lock2) {
            if (sqlSessionFactory2 != null) {
                return sqlSessionFactory2;
            } else {
                /*
                InputStream inputStream = null;
                try {
                    inputStream = Resources.getResourceAsStream(xmlResource2);
                    sqlSessionFactory2 = new SqlSessionFactoryBuilder().build(inputStream);
                } finally {
                    if (inputStream != null) {
                        inputStream.close();
                    }
                }
                */
                Reader reader = null;
                try{
                    reader = org.apache.ibatis.io.Resources.getResourceAsReader(xmlResource2);
                    sqlSessionFactory2 = new SqlSessionFactoryBuilder().build(reader);
                }
                finally {
                    if(reader != null){
                        reader.close();
                    }
                }
                return sqlSessionFactory2;
            }
        }
    }
    //******************************************************************************************************************
    @Override
    protected SqlSessionFactory getSqlSessionFactory() throws IOException
    {
        //return super.getSqlSessionFactory();
        if (sqlSessionFactory2==null){
            sqlSessionFactory2=getSqlSessionFactoryImpl2();
        }
        return sqlSessionFactory2;
    }
    @Override
    public SqlSession getSqlSession() throws IOException
    {
        return getSqlSession();//super.getSqlSession();//未测试
    }
}
  
        
        