




已阅读5页,还剩11页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1,03Spring DAO&事务,2,本章目标,Spring中配置数据源 Spring对DAO的封装 Spring对事务的配置,3,Spring中配置数据源连接池,所需包:commons-dbcp.jar、commons-pool.jar ,4,Spring对DAO的支持,建立一数据连接池:mons.dbcp.BasicDataSource Spring有提供一个JDBC的模板类用于简化JDBC操作。JdbcTemplate,它需要一个DataSource协同工作。 JdbcTemplate的配置 ,5,Spring整合Hibernate,初始化SessionFactory,通过配置LocalSessionFactoryBean来实现,其中的dataSource属性指定SessionFactory对应的数据源,hibernateProperties对应Hibernate的其它配置参数。 product.hbm.xml org.hibernate.dialect.MySQLDialecttrue product.hbm.xml 可以换用 directoryName Spring中有提供一个Hibernate的模板代码,类似于Hibernate的Session接口,但它是一个线程安全的类。,6,Spring整合Hibernate,Hibernate模板 模板的支持类:HibernateDaoSupport通过使用getHibernateTemplate()向子类开放模板类实例的调用 ,7,Spring的事务管理,Spring针对不同的事务实现有提供不同的事务管理器,通过事务管理器,可实现应用程序的事务管理功能,下面列出了Spring支持的一些事务管理器: DataSourceTransactionManager 提供了对JDBC事务的支持 HibernateTransactionMangager 提供了对Hibernate事务的支持 JDOTransactionManager 对使用JDO持久化的事务支持 JTATransactionManager 使用JTA来管理事务,应用跨多个数据源时使用 事务管理器可作为一个bean在配置文件中声明,它实际上是针对于不同的ORM机制的事务代理对象。 Spring有提供一个TransactionTemplate模板类用于执行事务的操作。,8,事务的属性,它是Spring中表示事务策略如何应用到方法上的描述,它由以下几个方面组成: 传播行为:定义了事务的边界。例如如何开始一个事务。 PROPAGATION_MANDATORY 表示方法必需在一个事务中执行,否则会抛出异常。 PROPAGATION_NEVER 表示方法不应当运行在一个事务中,如果运行在其中将抛出异常 PROPAGATION_NOT_SUPPORTED 表示方法不应当运行在事务中,如果有一个事务,方法将被挂起直到事务运行完成 PROPAGATION_REQUIRED 方法必需在一个事务中运行,如果没有事务则建立一个新事务 PROPAGATION_REQUIRED_NEW方法必需在一个新的事务中,如果已有事务,则方法挂起,直到事务完成。 PROPAGATION_NESTED 如果已有事务,方法作为一个嵌套事务运行否则与REQUIRED一致。 PROPAGATION_SUPPORTS 方法可在事务中也可以不在事务中执行。 事务传播级别指定了方法是否需要在事务环境中运行或等待或启动。,9,事务的属性,隔离级别:用于解决事务的并发问题。事务的并发可以引起脏读,虚读,不可重复读等问题。 ISOLATION_DEFAULT 表示使用数据库的默认的隔离级别。 ISOLATION_READ_UNCOMMITED充许读取还未提交的事务的数据。可能会导致脏读,虚读或不可重复读。 ISOLATION_READ_COMMITED 充许读取提交后的数据,可以避免脏读,但可能会许生虚读或不可重复读。 ISOLATION_REPEATABLE_READ对相同的字段读取的结果是一样的,可以避免虚读,但会产生虚读。 ISOLATION_SERIALIZABLE 隔离的最高级别可以避免事务的冲突。 隔离级别越高,事务的性能将越低。 只读提示:如果事务只执行读取操作,可以设置为只读事务,数据库会对只读事务执行优化处理。 事务超时:当事务超过预定的时间后它将自动回滚。,10,Hibernate事务管理器,HibernateTransactionManager配置 ,11,Spring声明式事务管理,除了使用TransactionTemplate操作事务外,Spring有提供内置的事务代理对象工厂类TransactionProxyFactoryBean用于产生目标对象的事务代理对象。 它具有几个属性用于指定它所依赖的对象: transactionManager:用于指定使用的事务管理器 proxyTargetClass:是否使用CGLIB生成代理对象 proxyInterfaces:代理实现的接口。 target:代理的目标对象。 transactionAttributes:指定事务的属性源。,12,Spring声明式事务管理配置, PROPAGATION_REQUIRED PROPAGATION_REQUIRED PROPAGATION_REQUIRED PROPAGATION_REQUIRED PROPAGATION_REQUIRED PROPAGATION_REQUIRED,readOnly ,13,事务拦截器, PROPAGATION_
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025标准版权合同模板
- 2025劳动合同范本4
- 挂靠保险协议合同范本
- 语文教学论知到课后答案智慧树章节测试答案2025年春华南师范大学
- 房产委托购房合同范本
- 2024年山东健康集团招聘真题
- 2024年聊城市市属事业单位考试真题
- 建筑钢筋安装合同范本
- 【理科综合能力测试试卷 及答案】新疆维吾尔自治区2025年普通高考高三下学期第三次适应性检测(新疆三模)
- 四年级上册数学教案第五单元例1《解决问题的策略》 苏教版
- 新教科版小学1-6年级科学需做实验目录
- 2024年高等教育自学考试自考《英语二》试卷及解答参考
- 高低压配电安全规程
- 量子神经网络算法
- 2024智联招聘行测题库
- 三级人工智能训练师(高级)职业技能等级认定考试题库-上(单选题部分)
- 症状护理-疼痛课件
- 店铺(初级)营销师认证考试题库附有答案
- 《建筑深基坑工程施工安全技术规范》(JGJ311-2013)
- 消防责任划分协议书
- 八年级数学下册专题05垂美四边形模型与378、578模型(原卷版+解析)
评论
0/150
提交评论