MyBatis的工具类MyBatisUntils,需要时直接用就行

MyBatis的工具类MyBatisUntils,需要时直接用就行,第1张

该工具类是固定模板,用到时可以根据自己主配置文件的名称,更改该项目的主配置文件就行。

主要目的是通过封装这些重复代码,在测试类需要的时候直接调用该类的对象获取SqlSession就可以了。

package com.it.untils;

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 MyBatisUntils {
    private static SqlSessionFactory factory = null;
//    写在静态代码块中,可以避免SqlSessionFactory对象重复创建,该对象创建耗时较长,
//    且创建一次可以重复使用,故套写在静态代码块中,当类加载的时候才会运行一次

    static {
//指向主配置文件,套用时换成自己的主配置文件名称
        String config="mybatis.xml";
        InputStream resourceAsStream=null;
        try {
            resourceAsStream = Resources.getResourceAsStream(config);
            SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
            factory = builder.build(resourceAsStream);
        } catch (IOException e) {
            e.printStackTrace();
        }

    }

    //获取SqlSession的方法
    public static SqlSession getSqlSession(){
        SqlSession sqlSession=null;
        if (factory!=null){
//参数为true,开启insert,delete,update的自动提交事件
            sqlSession = factory.openSession(true);
        }
        return sqlSession;
    }
}

当测试时需要获取SqlSession对象时,通过

    SqlSession sqlSession = MyBatisUntils.getSqlSession();
    StudentDao mapper = sqlSession.getMapper(StudentDao.class);

直接获取SqlSession对象,体现了java封装的好处。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/794191.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-06
下一篇2022-05-06

发表评论

登录后才能评论

评论列表(0条)

    保存