mybatis3-SqlSessionFactory保证唯一

初始化工具类MyBatisUtil

要保证SqlSessionFaction这个对象全局唯一

导航

回到mybatis导航页

MyBatisUtil.java

package com.torey.mybatis.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.Reader;

/**
 * @ClassName:MyBatisUtils
 * @Description:创建全局唯一的SqlSessionFaction对象
 * @author: Torey
 */
public class MyBatisUtils {
    //static是静态的,是属于这个类,而不是属于对象的
    private static SqlSessionFactory sqlSessionFactory=null;
    static {
        //static块用于初始化静态对象
        try {
            Reader reader = Resources.getResourceAsReader("mybatis-config.xml");
            sqlSessionFactory= new SqlSessionFactoryBuilder().build(reader);
        } catch (IOException e) {
            e.printStackTrace();
            //初始化错误,通过抛出ExceptionInInitializerError通知调用者
            throw new ExceptionInInitializerError(e);
        }
    }
    public static SqlSession openSession(){
        return sqlSessionFactory.openSession();
    }
    public static void closeSession(SqlSession sqlSession){
        if (null!=sqlSession) {
            sqlSession.close();
        }
    }
}

测试用例

package com.torey.mybatis;

import com.torey.mybatis.utils.MyBatisUtils;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.Configuration;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Test;

import java.io.File;
import java.io.IOException;
import java.io.Reader;


/**
 * @ClassName:MybatisTestor
 * @Description:
 * @author: Torey
 */
public class MybatisTestor {
    @Test
    public void testMyBatisUtil() throws Exception {
        SqlSession sqlSession = null;
        try {
            sqlSession = MyBatisUtils.openSession();
            Configuration configuration = sqlSession.getConfiguration();
            System.out.println(configuration);
        } catch (Exception ex) {
            throw ex;
        } finally {
            MyBatisUtils.closeSession(sqlSession);
        }
    }

}

导航,上一页,下一页

2SqlSessionFactory

4MyBatis数据查询

支持我-微信扫一扫-加入微信公众号

Aseven公众号

赞赏作者

赞赏作者
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值