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

非集成 获取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的两种使用方式的案例实操:https://blog.csdn.net/qq_41086359/article/details/99675887

 

posted @ 2022-04-26 00:55  你好,Alf  阅读(53)  评论(0编辑  收藏  举报