第4章 Spring与持久层.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第4章 Spring与持久层

第4章 Spring与持久层 目标 Spring的DAO框架 Spring对JDBC的支持 Spring的事务管理 在Spring中整合Hibernate Spring的DAO框架 对于数据库存取的支持,Spring提供了DAO框架,主要的目的是便于以标准的方式使用不同的数据访问技术(如JDBC、Hibernate等)。它不仅可以让你方便地在这些持久化技术间切换,而且让你在编码的时候不用考虑处理各种技术中特定的异常。关于事务的处理方面,Spring提供了编程式事务管理与声明式事务管理。 DAO的支持类: JdbcDaoSupport JDBC数据访问对象的基类。需要一个DataSource,同时为子类提供JdbcTemplate。 HibernateDaoSupport Hibernate数据访问对象的基类。需要一个SessionFactory,同时为子类提供HibernateTemplate。 Spring对JDBC的支持 在使用JDBC时,总是要处理繁琐的细节,例如:Connection、Statement的获得、SQLException的处理、Connection、Statement的关闭等问题,Spring在JDBC的使用上提供了几个类,可以简化JDBC使用时的流程。 下面我们通过一个具体的示例来讲解Spring是如何支持JDBC的。 JdbcTemplateDemo db.sql 数据库的创建 User.java 实体类 IUserDAO.java 数据操作接口 UserDAO.java 数据操作对象 applicationContext.xml 配置文件 SpringDAODemo SpringDAO演示 Spring的事务管理 Spring提供编程式的事务管理与声明式的事务管理,为不同的事务实现提供了一致的编程模型。 编程式的事务管理 编程式的事务管理可以清楚地控制事务的边界,也就是让你自行实现事务开始时间、撤消操作的时机、结束时间等,可以实现细粒度的事务控制。 声明式的事务管理 然而多数的情况下,事务并不需要细粒度的控制,而是采用声明式的事务管理,处处是Spring事务管理的相关API可以不用介入程序之中,从对象的角度来看,它并不知道自己正被纳入事务管理之中,在不需要事务的时候只要在设置文件上修改一下设置,即可移去事务管理服务。 下面,我们以JDBC事务为例,介绍Spring的事务管理。其它持久化技术与之相似。 JDBC编程事务管理 在Spring中,要实现JDBC编程式的事务管理,需要使用以下几个类来完成: DataSourceTransactionManager 事务管理器对象,可提交或回滚事务 DefaultTransactionDefinition 事务定义对象,可设置事务的属性 TransactionStatus 事务状态对象,表示开始事务 ProgrammaticTransactionDemo db.sql 数据库的创建 User.java 实体类 IUserDAO.java 数据操作接口 UserDAO.java 数据操作对象 applicationContext.xml 配置文件 SpringDAODemo SpringDAO演示 JDBC声明事务管理 JDBC声明式的事务管理依赖Spring的AOP框架来完成。使用声明事管理的好处是,事务管理不能侵入你所开发的组件,具体来说,DAO对象不会意识到正在事务管理之中,事实也应当如此,因为事务管理是属于系统层面的服务,而不是业务逻辑的一部分,如果想要改变事务管理策略的话,也只需要在定义文件中重新配置。 DeclarativeTransactionDemo db.sql 数据库的创建 User.java 实体类 IUserDAO.java 数据操作接口 UserDAO.java 数据操作对象 applicationContext.xml 配置文件 SpringDAODemo SpringDAO演示 事务的属性介绍 Spring使用AOP来完成声明式的事务管理,因而声明式事务是以方法为边界的,Spring的事务属性自然就在于描述事务应用到方法上的策略,在Spring中事务属性分作以下的几个参数: 传播行为 传播行为定义了事务应用于方法上的边界,它告知何时该开始一个新的事务,或何时事务该被暂停,或方法是否要在事务中进行。 隔离层级 隔离层级可以让你根据实际的需求,对数据的锁定进行设置。 事务超时期间 有的事务操作可能延续很长一段的时间,事务本身可能关联的数据表格的锁定,因而长时间的事务操作会有效率上的问题,对于过长的事务操作,你要考虑回滚事务并要求重新操作,而不是无限时的等待事务完成。 只读提示 如果事务只进行读取的动作,则可以利用底层数据库在只读操作

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档