package com.soft.Util;

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 final class MybatisUtils {

    private static SqlSessionFactory sqlSessionFactory= null;

    //工具类需要将构造方法私有化,目的是防止工具类实例化对象
    private MybatisUtils(){}
//静态代码块用于拿到SqlSessionFactory会话工厂
    static {
//        代码会报错需要抛出异常
        try {
            InputStream is = Resources.getResourceAsStream("mybatis-config.xml");
            sqlSessionFactory  = new SqlSessionFactoryBuilder().build(is);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    public static SqlSession getSqlSession(){
//                通过会话工厂创建sqlSession对象,将其返回
                return sqlSessionFactory.openSession();
    }
}