《零点起飞学JavaWeb开发之使用Spring操作数据库.pptx》由会员分享,可在线阅读,更多相关《零点起飞学JavaWeb开发之使用Spring操作数据库.pptx(13页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第24 章 使用Spring 操作数据库 Spring 框架不仅提供了MVC 框架,而且它还支持通过JDBC 访问数据库,支持与多种ORM 技术的无缝衔接,如Hibernate、iBatis 等。Spring 框架建立了一系列的类与接口,程序员只需要实现这些接口并在配置文件中把必须的组件注入,就可以很方便地进行数据库的操作。24.1 Spring 框架的事务处理 事务处理是数据库操作中一个非常重要的概念,Spring 框架使用AOP 机制,很大程度地降低了进行事务处理时的复杂性,使程序员将精力集中在对数据库的业务逻辑操作上,而不用去关心连接的建立和关闭、异常的捕获、日志的记录、资源的释放等。2
2、4.1.1 传统的JDBC 事务处理 使用JDBC 操作数据库时,需要在程序中对数据库事务进行控制。这种情况下,程序员需要将额外的精力花费在事务流程的控制上。数据库信息:CLASSFORNAME、SER V ANDDB、USER、PWD 等以硬代码的形式出现在实现业务操作的类中,这样不方便统一修改,代码重用性低。在执行业务操作executeUpdate 之前,需要执行与业务逻辑无关的操作。例如,通过getConnection 去连接数据库、通过createStatement 获得Statement 对象等。在执行业务操作executeUpdate 之后,还需要写一大段代码捕获各种情况出现的异常
3、;对异常进行处理;通过close()方法去关闭连接对象和Statement 对象。24.1.2 Spring 框架的事务处理 Spring 框架的事务处理是基于动态的AOP 机制实现的,它把所有注入连接数据库、捕获异常、清理资源等操作封装到一些已经定义好的类和接口当中,程序员只需要在Spring 配置文件中将它们载入,并且编写类实现那些处理业务逻辑的接口即可。Spring 的事务处理方式有两种,下面逐一介绍。1 编程式事务处理 编程式事务处理要求程序员在自己编写的类中,重写特定的方法去完成业务操写。2 声明式事务处理 声明式事务处理不像编程式事务处理,靠重写接口去实现业务逻辑和事务控制相分离,
4、它是通过拦截器机制来实现此目的。在处理业务逻辑之前先靠拦截器去完成连接数据库、创建事务等,在处理业务逻辑之后逆向调用拦截器实现事务提交或回滚、清理资源等操作。这样用户就不需要在自己编写的类中去重写接口,而仅需要在自命名的方法中处理业务逻辑,然后在配置文件中为该方法配置拦截器即可。下面通过一个例子来说明。24.2 数据源DataSource 的注入 前两个例子中都用到了DataSource,它主要用来封装连接数据库的信息,然后提交给其他的组件,例如transactionManager、JdbcT emplate。在配置文件中需要对DataSource 进行配置。id:用来唯一标示该DataSou
5、rce。class:用来指定该DataSource 的实现类。driverClassName:指定数据库的驱动程序。url:用来指定访问数据库的URL。username:用来指定访问数据库的用户名。password:指定对应用户名的密码。24.3 PlatformTransactionManager接口的作用 PlatformT ransactionManager 接口封装了所有对事务(T ransaction)进行处理的方法,所有实现该接口的类都必须重写这些方法。在配置文件中一般通过bean 标签定义一个该接口的实现类作为业务处理器。24.4 使用JdbcTemplate 访问数据 Jdbc
6、T emplate 类经常用来执行SQL 语句实现数据库操作。例如,在示例24-2 和示例24-3 中使用JdbcT emplate 向数据库中插入记录。本节首先讲解Spring 框架的T emplate 模式,然后讲述JdbcT emplate的使用方法。24.4.1 Template 模式简介 T emplate,顾名思义就是用来提供框架的模板。在进行事务处理时,虽然每个事务所进行的具体的数据库操作不同,但是每个事务都需要首先建立连接,然后建立事务、提交事务、出现错误时回滚事务,这些步骤是所有事务都有的。所以模板就是把这些步骤提炼出来,组成一个框架,把具体的数据库操作作为一个接口提供给程序
7、员。24.4.2 JdbcTemplate 的实现方式 JdbcT emplate 像T ransactionT emplate 一样,也提供了一些模板方法,但是该类更多的是提供给用户一些执行SQL 语句的方法去操作数据库。24.5 Spring Hibernate 实例分析 Spring 框架可以使用前面讲解的方式调用JdbcT emplate 进行数据库操作,也可以和其他ORM 工具集成,Spring 框架可以和Hibernate、iBatis 等进行无缝集成。在实际开发中使用Spring 框架与Hibernate集成可以很方便地进行操作,本节通过一个例子讲解如何实现二者的集成。24.6 小 结 本章结合实例讲解了Spring 事务处理的一般方法,以及DataSource、T emplateManager、JdbcT emplate 的使用方法,最后讲述了如何实现Hibernate 和Spring 的集成。本章的重点是掌握Spring 声明式事务处理的方法,以及如何与Hibernate 集成。通过本章的学习,读者应该能够能够理解Spring 事务处理的原理,并且能够在实际开发中使用Spring 方便地操作数据库。