在我们使用mybatis框架的时候,mybatis要配置
sqlSessionFactory,并且根据工厂类获得sqlsession,close等等,发现我们每一次编写Test 文件的时候都要重写一遍,所以我们可以将这些方法抽取出来,写成Mybatis的工具类,如下
package com.itheima.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; /** * @Classname MybatisUtil * @Description TODO * @Date 3/21/2024 12:22 PM * @Created by 86184 */ //工具类:私有化构造器+静态方法 public class MybatisUtil { //私有化构造方法 private MybatisUtil(){} //创建工厂类对象 在32行赋值 private static SqlSessionFactory sqlSessionFactory=null; //随着类的执行只加载一次 static { /* String resource = "mybatis-config.xml";*/ try { //读取配置文件 mybatis-config.xml可根据自己文件名修改 InputStream is = Resources.getResourceAsStream("mybatis-config.xml"); //创建工厂类对象 sqlSessionFactory = new SqlSessionFactoryBuilder().build(is); } catch (IOException e) { e.printStackTrace(); } } //静态方法,返回SqlSession对象 public static SqlSession openSqlSession(){ return sqlSessionFactory.openSession();//默认事务 } public static SqlSession openSqlSession(boolean flag){ return sqlSessionFactory.openSession(flag);//根据参数指定事务 } //静态方法 关闭SqlSession public static void closeSqlSession(SqlSession sqlSession){ if (sqlSession != null){ sqlSession.close(); } } }