SqlSession的使用范围

SqlSession中封装了对数据库的操作,如:查询、插入、更新、删除等。

SqlSession通过SqlSessionFactory创建。

SqlSessionFactory是通过SqlSessionFactoryBuilder进行创建。

SqlSessionFactoryBuilder

SqlSessionFactoryBuilder用于创建SqlSessionFacoty,SqlSessionFacoty一旦创建完成就不需要SqlSessionFactoryBuilder了,因为SqlSession是通过SqlSessionFactory创建的。所以可以将SqlSessionFactoryBuilder当成一个工具类使用,最佳使用范围是方法范围即方法体内局部变量。

SqlSessionFactory

SqlSessionFactory是一个接口,接口中定义了openSession的不同重载方法,SqlSessionFactory的最佳使用范围是整个应用运行期间,一旦创建后可以重复使用,通常以单例模式管理SqlSessionFactory。

SqlSession

SqlSession是一个面向用户的接口,sqlSession中定义了数据库操作方法。

每个线程都应该有它自己的SqlSession实例。SqlSession的实例不能共享使用,它也是线程不安全的。因此最佳的范围是请求或方法范围。绝对不能将SqlSession实例的引用放在一个类的静态字段或实例字段中。

打开一个 SqlSession;使用完毕就要关闭它。通常把这个关闭操作放到 finally 块中以确保每次都能执行关闭。如下:

SqlSession session = sqlSessionFactory.openSession();
try {// do work
} finally {session.close();
}

SqlSession的使用范围相关推荐

  1. SqlSession的使用范围---Mybatis学习笔记(五)

    介绍: SqlSession中封装了对数据库的操作,如:查询.插入.更新.删除等. 通过SqlSessionFactory创建SqlSession,而SqlSessionFactory是通过SqlSe ...

  2. MyBatis开发Dao的方法

    1.SqlSession的使用范围 1.1 SqlSessionFactoryBuilder:用来创建SqlSessionFactory,只需要把SqlSessionfactoryBuilder当成一 ...

  3. mybatis学习(3)进阶

    11.mybatis和hibernate本质区别和应用场景 1.hibernate:是一个标准的ORM(对象关系映射),不需要程序员写sql,sql语句自动生成 :对sql语句进行优化,修改困难 适应 ...

  4. 通过项目逐步深入了解Mybatis二

    Mybatis 解决 jdbc 编程的问题 1. 数据库链接创建.释放频繁造成系统资源浪费从而影响系统性能,如果使用数据库链接池可解决此问题. 解决:在SqlMapConfig.xml中配置数据链接池 ...

  5. 原始Dao开发方法以及存在的问题

    存在的问题: 原始Dao开发中存在以下问题: 1.Dao方法体存在重复代码:通过SqlSessionFactory创建SqlSession,调用SqlSession的数据库操作方法 2.调用sqlSe ...

  6. MyBatis之Mapper动态代理开发

    MyBatis之Mapper动态代理开发 2017/9/30 1.SqlSession的使用范围 1.SqlSessionFactoryBuilder SqlSessionFactoryBuilder ...

  7. MyBatis学习随记

    1       Mybatis入门 1.1     单独使用jdbc编程问题总结 1.1.1  jdbc程序 Public static void main(String[] args) { Conn ...

  8. (转)MyBatis框架的学习(三)——Dao层开发方法

    http://blog.csdn.net/yerenyuan_pku/article/details/71700957 使用MyBatis开发Dao层,通常有两个方法,即原始Dao开发方法和Mappe ...

  9. Mybatis与JDBC的对比超详细笔记

    1      Mybatis入门 1.1    单独使用jdbc编程问题总结 1.1.1  jdbc程序 Public static void main(String[] args) { Connec ...

  10. Mybatis(持久层的框架),注入的三种方式

    MyBatis 是一款优秀的持久层框架,它支持定制化 SQL(灵活).存储过程(PLSQL模块化的组件,数据库的一部分)以及高级映射(表映射为Bean也可以将Bean映射为表).MyBatis 避免了 ...

最新文章

  1. C 语言编程 — size_t 的意义与作用
  2. HDOJ 1231 最大连续子序列
  3. python的迭代器指向第一个字符_python(七)字符串格式化、生成器与迭代器
  4. php smarty 源码,Smarty php源码 v3.1.39
  5. Python函数传参方式超级大汇总
  6. centos7下安装storm步骤
  7. 硬核分析|腾讯云原生OS内存回收导致关键业务抖动问题
  8. ❤️震惊!人生苦短,我用python来玩田忌赛马❤️
  9. 函数 的 重载 和 函数 模版
  10. 关于Toast 详解
  11. python6翻了_Python老司机也会翻车!10个最容易犯的Python开发错误
  12. 在M1 mac 使用Ps 2021上导出 PNG 格式发生未知错误如何解决?
  13. POJ - 3258 River Hopscotch 二分
  14. Windows下db2数据库许可证过期解决方法
  15. 网易换肤第一篇:换肤技术解密!
  16. 手机号已经绑定微信号,现在怎么再注册一个微信号
  17. 自动控制原理笔记-频率响应法-频率特性的概念
  18. 7-1 找第k小的数(反思),a++和++a的区别,运算符优先级,递归分制思想
  19. datawhale组队学习task9—文件与文件系统
  20. vivos9设置定时开关机方法分享

热门文章

  1. android单点触摸事件,Android多点触控详解
  2. mysql统计类似SQL语句查询次数
  3. 安卓ViewBinding详解
  4. 华为笔记本电脑home键和end键快捷方式
  5. opc ua与opc da区别_OPC,OPCDA,OPCUA
  6. 整车行业 SAP APO 开发备忘(刘欣)
  7. linux环境下,mysql数据库的完美卸载!(亲测)
  8. hdu 4966 GGS-DDU 最小树形图
  9. Android开发:toast封装工具类
  10. 微信小程序名片版需要服务器吗,【微信小程序】壹脉智能名片小程序源码V3.5.0+前端+后端+无插件【包更新】...