- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第24章 使用Spring操作数据库
Spring框架不仅提供了MVC框架,而且它还支持通过JDBC访问数据库,支持与多种ORM技术的无缝衔接,如Hibernate、iBatis等。Spring框架建立了一系列的类与接口,程序员只需要实现这些接口并在配置文件中把必须的组件注入,就可以很方便地进行数据库的操作。
24.1 Spring框架的事务处理
事务处理是数据库操作中一个非常重要的概念,Spring框架使用AOP机制,很大程度地降低了进行事务处理时的复杂性,使程序员将精力集中在对数据库的业务逻辑操作上,而不用去关心连接的建立和关闭、异常的捕获、日志的记录、资源的释放等。
24.1.1 传统的JDBC事务处理
使用JDBC操作数据库时,需要在程序中对数据库事务进行控制。这种情况下,程序员需要将额外的精力花费在事务流程的控制上。
数据库信息:CLASSFORNAME、SERVANDDB、USER、PWD等以硬代码的形式出现在实现业务操作的类中,这样不方便统一修改,代码重用性低。
在执行业务操作executeUpdate之前,需要执行与业务逻辑无关的操作。例如,通过getConnection去连接数据库、通过createStatement获得Statement对象等。
在执行业务操作executeUpdate之后,还需要写一大段代码捕获各种情况出现的异常;对异常进行处理;通过close()方法去关闭连接对象和Statement对象。
24.1.2 Spring框架的事务处理
Spring框架的事务处理是基于动态的AOP机制实现的,它把所有注入连接数据库、捕获异常、清理资源等操作封装到一些已经定义好的类和接口当中,程序员只需要在Spring配置文件中将它们载入,并且编写类实现那些处理业务逻辑的接口即可。Spring的事务处理方式有两种,下面逐一介绍。
1.编程式事务处理
编程式事务处理要求程序员在自己编写的类中,重写特定的方法去完成业务操写。
2.声明式事务处理
声明式事务处理不像编程式事务处理,靠重写接口去实现业务逻辑和事务控制相分离,它是通过拦截器机制来实现此目的。在处理业务逻辑之前先靠拦截器去完成连接数据库、创建事务等,在处理业务逻辑之后逆向调用拦截器实现事务提交或回滚、清理资源等操作。这样用户就不需要在自己编写的类中去重写接口,而仅需要在自命名的方法中处理业务逻辑,然后在配置文件中为该方法配置拦截器即可。下面通过一个例子来说明。
24.2 数据源DataSource的注入
前两个例子中都用到了DataSource,它主要用来封装连接数据库的信息,然后提交给其他的组件,例如transactionManager、JdbcTemplate。
在配置文件中需要对DataSource进行配置。
id:用来唯一标示该DataSource。
class:用来指定该DataSource的实现类。
driverClassName:指定数据库的驱动程序。
url:用来指定访问数据库的URL。
username:用来指定访问数据库的用户名。
password:指定对应用户名的密码。
24.3 PlatformTransactionManager接口的作用
PlatformTransactionManager接口封装了所有对事务(Transaction)进行处理的方法,所有实现该接口的类都必须重写这些方法。在配置文件中一般通过bean标签定义一个该接口的实现类作为业务处理器。
24.4 使用JdbcTemplate访问数据
JdbcTemplate类经常用来执行SQL语句实现数据库操作。例如,在示例24-2和示例24-3中使用JdbcTemplate向数据库中插入记录。本节首先讲解Spring框架的Template模式,然后讲述JdbcTemplate的使用方法。
24.4.1 Template模式简介
Template,顾名思义就是用来提供框架的模板。在进行事务处理时,虽然每个事务所进行的具体的数据库操作不同,但是每个事务都需要首先建立连接,然后建立事务、提交事务、出现错误时回滚事务,这些步骤是所有事务都有的。所以模板就是把这些步骤提炼出来,组成一个框架,把具体的数据库操作作为一个接口提供给程序员。
24.4.2 JdbcTemplate的实现方式
JdbcTemplate像TransactionTemplate一样,也提供了一些模板方法,但是该类更多的是提供给用户一些执行SQL语句的方法去操作数据库。
24.5 Spring+Hibernate实例分析
Spring框架可以使用前面讲解的方式调用JdbcTemplate进行数据库操作,也可以和其他ORM工具集成,Spring框架可以和Hibernate、iBatis等进行无缝
文档评论(0)