Mybatis抽取SqlSessionFactory方法复用

抽取成工具类的目的,解决繁琐的创建步骤,提高效率。

package cn.itxiaoli.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 class SqlSessionFactoryUtils {
    private static SqlSession sqlSession = null;
    private static final SqlSessionFactory sqlSessionFactory;

    static {
        InputStream resourceAsStream = null;
        try {
            resourceAsStream = Resources.getResourceAsStream("mybatis-config.xml");
        } catch (IOException e) {
            e.printStackTrace();
        }
        sqlSessionFactory = new SqlSessionFactoryBuilder().build(resourceAsStream);
    }

    @SuppressWarnings("unchecked")
    public static Object getMapper(Class T) {
        sqlSession = sqlSessionFactory.openSession(true);
        return sqlSession.getMapper(T);
    }

    public static void sqlSessionClose() {
        sqlSession.close();
    }
}
    /**
     * 测试方法
     * 添加品牌信息
     *
     * @param brand
     */
    public void add(Brand brand) {
        BrandMapper mapper = (BrandMapper)SqlSessionFactoryUtils.getMapper(BrandMapper.class);
        mapper.add(brand);
        SqlSessionFactoryUtils.sqlSessionClose();
    }
版权属于:it小离

本文链接: https://www.itxiaoli.cn/archives/SqlSessionFactoryUtil.html

版权声明:本站文章采用 署名-非商业性使用-相同方式共享 4.0

最后修改:2022 年 04 月 06 日 07 : 48 PM
如果觉得我的文章对你有用,请随意赞赏