SqlSessionFactory的初始化工具类:MyBatisUtils

MyBatisUtils代码

/**
 * 创建全局唯一的SqlSessionFactory对象
 */
public class MyBatisUtils {
    //利用static属于类不属于对象,且全局唯一
    private static SqlSessionFactory sqlSessionFactory = null;
    //使用静态块在初始化类是实例化SqlSessionFactory
    static {
        try {
            Reader reader = Resources.getResourceAsReader("mybatis-config.xml");
            sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
        } catch (IOException e) {
            e.printStackTrace();
            //初始化错误时,通过抛出ExceptionInInitializerError通知调用者
            throw new ExceptionInInitializerError(e);
        }
    }

    /**
     * 创建一个新的SqlSession对象
     * @return
     */
    public static SqlSession openSession() {
        return sqlSessionFactory.openSession();
    }

    /**
     * 释放一个有效的SqlSession对象
     * @param sqlSession 准备释放的SqlSession对象
     */
    public static void closeSession(SqlSession sqlSession) {
        if (sqlSession != null) {
            sqlSession.close();
        }
    }
}

测试代码

@Test
    public void testMyBatisUtils(){
        SqlSession sqlSession=null;
        try{
            sqlSession = MyBatisUtils.openSession();
            Connection connection = sqlSession.getConnection();
            System.out.println(connection);
        }catch (Exception e){
            throw e;
        }finally {
            MyBatisUtils.closeSession(sqlSession);
        }
    }

 

posted @ 2022-04-07 19:33  南风知君  阅读(153)  评论(0)    收藏  举报