mybatis:sqlsession及其工厂类的作用域和生命周期

renzhongpei      2022-05-08     229

关键词:

本文是按照狂神说的教学视频学习的笔记,强力推荐,教学深入浅出1便就懂!b站搜索狂神说即可

https://space.bilibili.com/95256449?spm_id_from=333.788.b_765f7570696e666f.2

 

SqlSession及其工厂类的作用域和生命周期

  • SqlSession创建流程:

 

 

  1. 使用SqlSessionFactoryBuilder创建SqlSessionFactory。

  2. 使用SqlSessionFactory创建SqlSession。

  3. SqlSession可以通过Sql Mapper.class进行数据库操作,或者直接使用SqlSession的方法输入SqlMapper.方法()进行数据库操作,使用完要关闭。

SqlSessionFactoryBuilder

  • 就是SqlSessionFactory的建造器,典型的工厂模式。

  • 创建后就不再需要了,因为就是为了创造SqlSessionFactory的工具类。

  • 作用域:局部变量

SqlSessionFactory

  • 类似DBCP的连接池。创建就应该一直存在,没有任何理由丢弃它或重新创建另一个实例。因此应该使用单例模式或静态单例模式来创建。

  • 作用域:应用作用域(Application)程序运行就创建,程序关闭才释放。

SqlSession

  • 类似JDBC的一个Connection对象。因此每次使用完就应该要关闭,这样才能回收到SqlSessionFactory中继续利用,而且SqlSession不是线程安全的,不能被共享。

  • 作用域:请求或方法。

  • 尽量使用finally块中。

mybatis之会话session原理

MyBatis之会话Session执行逻辑 1、SQL会话工厂构建器类SqlSessionFactoryBuilder的build方法用于构建SqlSessionFactory类的实例; 2、SQL会话工厂类的实例用于创建Sql会话SqlSession的实例; 3、SQL会话SqlSession用于执行具体的CURD操作,其类似于JDBC... 查看详情

mybatis学习笔记-增删改的操作-对sqlsession的优化封装-优化代码

Mybatis学习笔记(二)-增删改的操作-对SqlSession的优化封装-优化代码1.对SqlSession的优化封装从上一篇可以看到测试类有大量的代码冗余,那接下来对SqlSession的创建过程进行封装​ 1.使用了静态代码块,随着类的加载而执行,而且... 查看详情

mybatis--mybatis相应api(sqlsessionfactorybuildersqlsessionfactory(可以设置自动提交事务)sqlsession)(代码片段)

1.Mybatis相应API1.1SqlSession工厂构建器SqlSessionFactoryBuilder1.2SqlSession工厂对象SqlSessionFactory1.3SqlSession会话对象2.补充:了解SqlSessionFactory工厂类每个基于MyBatis的应用都是以一个SqlSessionFactory的实例为核心的。 SqlSessionFac 查看详情

mybatis--01.基础

1.Mybatis的基本组成SqlSessionFactoryBuilder(构造器):它会根据配置信息或者代码来生成SqlSessionFactory(工厂接口)SqlSessionFactory:依靠工厂来生成SqlSession(SQLSession会话:相当于JDBC中的Connection对象)SqlSession:即可以发送SQL去执行并返回结果,也... 查看详情

mybatis源码分析三mybatis的核心对象及其作用

...sultSetHandlerTypeHandlerMyBatis层次结构MyBatis的核心对象如何与SqlSession建立联系? 查看详情

mybatis简单入门

...来简单介绍一下这张图:首先明确我们的目的就是要创建sqlsession然后利用这个对象去执行sql完成CRUD。创建sqlsession的前提就是用session工厂去创建,利用工厂创建需要原材料啊,所以最顶端的MyBatis配置文件就是所需要的原材料。... 查看详情

mybatis简单应用

...lSeeeionFactoryBuilder(构建器):它会根据配置或者代码来生成SqlSessionFactory,采用的是分布构建的Builder模式;SqlSessionFactory:依靠它来生成SqlSession,使用的是工厂模式。SqlSession(会话)发送SQL执行并返回结果,也可以获取Mapper接口。SQLMa... 查看详情

mybatis的执行过程

...is-config.xml (2)加载映射文件 (3)构建会话工厂SqlSessionFactory (4)创建SqlSession对象 (5)创建Executor接口的实例。MyBatis底层定义了一个Executor接口来操作数据库,可以根据SqlSession传递的参数动态 查看详情

如何构建mybatis线程安全的sqlsession对象

...原生mybatis进行数据操作,那么必须按照以下方式使用:SqlSessionsqlSession=null;trysqlSession=sqlSessionFactory.openSession();//namespace+idsqlSession.insert("cn.jarjar.dao.BlogMapper.insertBlog",blog);sqlSession.commit(true)catch(Exceptione)e.printStackTrace();sqlSession.rollback... 查看详情

mybatis核心接口和类

三大对象:1、SqlSessionFactoryBuilder:负责构建SqlSessionFactory,并且提供了多个build()方法的重载2、SqlSessionFactory:创建SqlSession实例的工厂3、SqlSession:用于执行持久化操作的对象 三大对象获取的步骤:(1)每个MyBatis的应用程序... 查看详情

mybatis原理分析

...取类路径的配置文件使用SerbletContext对象的getRealPath()创建SqlSessionFactory工厂,使用了建造者模式(BuilderPattern)使用工厂生产SqlSession对象,使用了工厂模式(Fac 查看详情

mybatis中相关的类及其职责

类名职责SqlSession        作为MyBatis工作的主要顶层API,表示和数据库交互的会话,完成必要数据库增删改查功能Executor          MyBatis执行器,是MyBatis调度的核心, 查看详情

工厂模式原理及其简单应用

我的理解:用工厂方法代替new操作的一种模式。工厂方法封装了多个相关联类的new方法,每次实例化这些类的时候不需要new多次,只需要调用工厂类的对应方法即可实例化这些类。结合简单示例和UML图,讲解工厂... 查看详情

mybatis之sqlsessions

使用MyBatis的主要Java接口就是SqlSession。尽管你可以使用这个接口执行命令,获取映射器和管理事务。我们会讨论SqlSession本身更多,但是首先我们还是要了解如何获取一个SqlSession实例。SqlSessions是由SqlSessionFactory实例创建的。SqlSession... 查看详情

mybatis中sqlsession源码解析

一、sqlsession获取过程1、基础配置  在mybatis框架下进行的数据库操作都需要首先获取sqlsession,在mybatis与spring集成后获取sqlsession需要用到sqlsessionTemplate这个类。首先在spring对sqlsessionTemplate进行配置,使用到的是org.mybatis.spring.Sq... 查看详情

mybatis学习笔记

//获取SqlSessionFactoryBuilder用以新建SqlSession工厂实例类SqlSessionFactoryBuilderfactoryBuilder=newSqlSessionFactoryBuilder();SqlSessionFactorybuild=null;try{//通过配置文件建立SqlSessionFactory,尽管可以配置多个环境,每个SqlSessionF 查看详情

09mybatis中sqlsession的使用

参考技术A本文将阐述SqlSession的使用。以上就是mybatis中Sqlsession的使用过程。 查看详情

mybatis入门(项目演示基于maven)

MyBatis的运行流程:SqlSessionFactory回话工厂通过Resource获取SqlMapConfig.xml的配置文件信息,然后通过sqlSession来跟数据库进行交互。SqlSession通过Mapper配置文件中的sql语句,执行相应的数据库增删查改的操作。MyBatis入门环境搭建数据库... 查看详情