工具类里面一般是静态方法,通过把读取mybatis主配置文件获取SqlSession的一些列繁琐步骤封装成工具类,减少代码量。
Mybatis工具类
src/main/java/com/oxygen/utils/MybatisUtil.java
package com.oxygen.utils; 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 MybatisUtil { private static SqlSessionFactory sqlSessionFactory; /** * 使用静态代码块的原因: * 一个sqlSessionFactory往往对于mybati主配置文件里面的一个环境(一个数据库) * sqlSessionFactory只需要一个就行了 * MybatisUtil工具类在第一次加载时解析mybatis的主配置文件,创建sqlSessionFactory对象 */ static { String config = "mybatis-config.xml"; try { InputStream in = Resources.getResourceAsStream(config); sqlSessionFactory = new SqlSessionFactoryBuilder().build(in); } catch (IOException e) { throw new RuntimeException(e); } } public static SqlSession getSqlSession() { SqlSession session = null; if (sqlSessionFactory != null) { session = sqlSessionFactory.openSession(true); } return session; } }