这篇“Spring数据库连接池实现原理实例分析”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Spring数据库连接池实现原理实例分析”文章吧。事务(Transaction),一般是指要做的或所做的事情。在计算机术语中是指访问并可能更新数据库中各种数据项的一个程序执行单元。事务通常由高级数据库操纵语言或编程语言(如SQL,C++或Java)书写的用户程序的执行所引起,并用形如begin transaction
和end transaction
语句(或函数调用)来界定。事务由事务开始(begin transaction
)和事务结束(end transaction
)之间执行的全体操作组成概念:例如:在关系数据库
中,一个事务可以是一条SQL语句,一组SQL语句或整个程序事务ACID原则:原子性(atomicity):一个事务是一个不可分割的工作单位,事务中包括的操作要么都做,要么都不做一致性(consistency):事务必须是使数据库从一个一致性状态变到另一个一致性状态。一致性与原子性密切相关隔离性(isolation):一个事务的执行不能被其他事务干扰。即一个事务内部的操作及使用的数据对并发的其他事务是隔离的,并发执行的各个事务之间不能互相干扰持久性(durability):持久性也称永久性(permanence),指一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。接下来的其他操作或故障不应该对其有任何影响声明式事务:通过AOP(面向切面)方式在方法前使用编程式事务的方法开启事务,通过注解或XML配置实现,在方法后提交或回滚。用配置文件的方法或注解方法(如:@Transactional)控制事务编程式事务:代码中进行事务管理手动开启、提交、回滚事务User类UserMapper接口UserMapper.xml接口映射文件mybatis-config.xml核心配置文件Spring-dao.xml(配置、整合Mybatis)applicationContext.xml(配置Spring框架所需的信息)要开启 Spring 的事务处理功能,在 Spring 的配置文件中创建一个 DataSourceTransactionManager
对象:spring-dao.xml中配置事务测试类isolation:隔离级别no-rollback-for:不回滚propagation:传播行为REQUIRED:支持当前事务,如果当前没有事务,就新建一个事务(默认)NESTED:支持当前事务,如果当前事务存在,则执行一个嵌套事务,如果当前没有事务,就新建一个事务read-only:只读rollback-for:回滚控制timeout:过期时间配置事务原因:避免数据提交不一致事务涉及数据一致性和完整性问题SqlSessionFactory是MyBatis的核心对象,用于初始化MyBatis,读取配置文件,创建SqlSession对象,SqlSessionFactory是全局对象,为保证其在应用中全局唯一,要使用static进行初始化SqlSession是MyBatis操作数据库的核心对象,SqlSession使用JDBC方式与数据库交互,同时提供了数据表的CRUD(增删改查)对应的api方法导入jar包格式:每个基于 MyBatis 的应用都是以一个 SqlSessionFactory 的实例为核心SqlSessionFactory 的实例可以通过 SqlSessionFactoryBuilder 获得而 SqlSessionFactoryBuilder 则可以从 XML 配置文件或一个预先配置的 Configuration 实例来构建出 SqlSessionFactory 实例获取sqlSessionFaction对象既然有了 SqlSessionFactory,顾名思义,我们可以从中获得 SqlSession 的实例。SqlSession 提供了在数据库执行 SQL 命令所需的所有方法。你免费云主机域名可以通过 SqlSession 实例来直接执行已映射的 SQL 语句utils包下创建工具类MybatisUtils类所有代码中都遵循这种使用模式,可以保证所有数据库资源都能被正确地关闭一旦创建了 SqlSessionFactory,就不再需要它了局部变量SqlSessionFactory 一旦被创建就应该在应用的运行期间一直存在,没有任何理由丢弃它或重新创建另一个实例数据库连接池SqlSessionFactory 的最佳作用域是应用作用域最简单的就是使用单例模式或者静态单例模式连接到SqlSessionFactory(连接池)的一个请求SqlSession 的实例不是线程安全的,因此是不能被共享的,所以它的最佳的作用域是请求或方法作用域。使用完需要赶紧关闭,否则资源被占用 SqlSession.close()以上就是关于“Spring数据库连接池实现原理实例分析”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注百云主机行业资讯频道。
相关推荐: Unity组件Toogle和DropDown怎么使用
这篇文章主要介绍“Unity组件Toogle和DropDown怎么使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Unity组件Toogle和Drop免费云主机域名Down怎么使用”文章能帮助大家解决问题。变形 gr…
免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。