当前位置 : 主页 > 编程语言 > java >

SqlDataAccessUtil2

来源:互联网 收集:自由互联 发布时间:2021-06-28
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
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 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();//未测试
    }

}
 
网友评论