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

SqlDataAccessUtil

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

}
 
上一篇:SqlDataAccessUtil2
下一篇:StaticClass
网友评论