SqlSession的使用范围
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的使用范围相关推荐
- SqlSession的使用范围---Mybatis学习笔记(五)
介绍: SqlSession中封装了对数据库的操作,如:查询.插入.更新.删除等. 通过SqlSessionFactory创建SqlSession,而SqlSessionFactory是通过SqlSe ...
- MyBatis开发Dao的方法
1.SqlSession的使用范围 1.1 SqlSessionFactoryBuilder:用来创建SqlSessionFactory,只需要把SqlSessionfactoryBuilder当成一 ...
- mybatis学习(3)进阶
11.mybatis和hibernate本质区别和应用场景 1.hibernate:是一个标准的ORM(对象关系映射),不需要程序员写sql,sql语句自动生成 :对sql语句进行优化,修改困难 适应 ...
- 通过项目逐步深入了解Mybatis二
Mybatis 解决 jdbc 编程的问题 1. 数据库链接创建.释放频繁造成系统资源浪费从而影响系统性能,如果使用数据库链接池可解决此问题. 解决:在SqlMapConfig.xml中配置数据链接池 ...
- 原始Dao开发方法以及存在的问题
存在的问题: 原始Dao开发中存在以下问题: 1.Dao方法体存在重复代码:通过SqlSessionFactory创建SqlSession,调用SqlSession的数据库操作方法 2.调用sqlSe ...
- MyBatis之Mapper动态代理开发
MyBatis之Mapper动态代理开发 2017/9/30 1.SqlSession的使用范围 1.SqlSessionFactoryBuilder SqlSessionFactoryBuilder ...
- MyBatis学习随记
1 Mybatis入门 1.1 单独使用jdbc编程问题总结 1.1.1 jdbc程序 Public static void main(String[] args) { Conn ...
- (转)MyBatis框架的学习(三)——Dao层开发方法
http://blog.csdn.net/yerenyuan_pku/article/details/71700957 使用MyBatis开发Dao层,通常有两个方法,即原始Dao开发方法和Mappe ...
- Mybatis与JDBC的对比超详细笔记
1 Mybatis入门 1.1 单独使用jdbc编程问题总结 1.1.1 jdbc程序 Public static void main(String[] args) { Connec ...
- Mybatis(持久层的框架),注入的三种方式
MyBatis 是一款优秀的持久层框架,它支持定制化 SQL(灵活).存储过程(PLSQL模块化的组件,数据库的一部分)以及高级映射(表映射为Bean也可以将Bean映射为表).MyBatis 避免了 ...
最新文章
- C 语言编程 — size_t 的意义与作用
- HDOJ 1231 最大连续子序列
- python的迭代器指向第一个字符_python(七)字符串格式化、生成器与迭代器
- php smarty 源码,Smarty php源码 v3.1.39
- Python函数传参方式超级大汇总
- centos7下安装storm步骤
- 硬核分析|腾讯云原生OS内存回收导致关键业务抖动问题
- ❤️震惊!人生苦短,我用python来玩田忌赛马❤️
- 函数 的 重载 和 函数 模版
- 关于Toast 详解
- python6翻了_Python老司机也会翻车!10个最容易犯的Python开发错误
- 在M1 mac 使用Ps 2021上导出 PNG 格式发生未知错误如何解决?
- POJ - 3258 River Hopscotch 二分
- Windows下db2数据库许可证过期解决方法
- 网易换肤第一篇:换肤技术解密!
- 手机号已经绑定微信号,现在怎么再注册一个微信号
- 自动控制原理笔记-频率响应法-频率特性的概念
- 7-1 找第k小的数(反思),a++和++a的区别,运算符优先级,递归分制思想
- datawhale组队学习task9—文件与文件系统
- vivos9设置定时开关机方法分享
热门文章
- android单点触摸事件,Android多点触控详解
- mysql统计类似SQL语句查询次数
- 安卓ViewBinding详解
- 华为笔记本电脑home键和end键快捷方式
- opc ua与opc da区别_OPC,OPCDA,OPCUA
- 整车行业 SAP APO 开发备忘(刘欣)
- linux环境下,mysql数据库的完美卸载!(亲测)
- hdu 4966 GGS-DDU 最小树形图
- Android开发:toast封装工具类
- 微信小程序名片版需要服务器吗,【微信小程序】壹脉智能名片小程序源码V3.5.0+前端+后端+无插件【包更新】...