0
点赞
收藏
分享

微信扫一扫

Mybatis中通过SqlsessionFacotory对象只创建一次

数数扁桃 2022-08-26 阅读 62


非集成 获取SqlSessionFactory的代码进行优化

非集成 通过静态类的方式,使SqlsessionFactory只创建一次

--MybatisUtil.java

private static SqlSessionFactory factory;
//静态代码块
static{
try{
InputStream is = Resources.getResourceAsStream("mybatis-config.xml");
factory = new SqlSessionFactoryBuilder().build(is);
}catch(IOException,e){
e.printStackTrace();
}
}

public static SqlSession createSqlSession(){
return factory.openSession(false); //默认是关闭的,这里的false参数是开启的意思
}

public static void closeSqlSession(SqlSession sqlSession){
if( null != SqlSession){
SqlSession.close();
}
}

 

SqlSession

1.包含了执行Sql所需的所有方法 
2.对应一次数据库绘画,绘画结束必须关闭
3.线程级别,不能共享(作用域:方法体内或request)

示例:

SqlSession session = sqlSessionFactory.openSession();
try{
//do work
} finally{
session.close();//关闭SqlSession非常重要,必须确保finally代码块正常关闭
//在SqlSession里可以执行多次sql语句,但一旦关闭了SqlSession就不要重新创建
}

SqlSession的获取方式

String resource = "mybatis-config.xml";
InputStream is =Resources.getResourceAsStream(resource);
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(is);
SqlSession sqlSession = factory.openSession();

SqlSession的两种使用方式

1.通过SqlSession实例直接运行映射的SQL语句
2.基于Mapper接口方式操作数据

SqlSession的两种使用方式的案例实操​

 

举报

相关推荐

0 条评论