快速业务通道

Spring JDBC抽象框架简化Web数据库开发 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-21
0; i < task.size(); i++) {     System.out.println(task.elementAt(i));    }   } }

除了实际查询数据库的SQL代码外,上面的示例中需要巨大数量的例程代码。getConnection()方法与我们的任务无关,而即使是getTasksNames()方法也仅包含特定于当前任务的两行代码。剩下的都是一些普通的复杂的任务代码。

JDBC的许多积极方面使得它在许多J2SE和J2EE应用程序中仍然占有重要地位。然而,正如你所见,有一些特征使其比我们可能想像的要更难于使用。JDBC这些乏味并且有时挫败人性的特征已经导致出现了许多公共的可以利用的JDBC抽象框架(例如SQLExecutor和Apache Jakarta Commons DBUtils),还有数不清的自家生产性JDBC应用程序框架。一种公共的可以利用的JDBC抽象框架正是Spring框架的JDBC抽象。

Spring JDBC抽象框架简化Web数据库开发(2)

时间:2011-01-06 天极 朱先忠

三.Spring JDBC简介

Spring所提供的JDBC抽象框架由四个不同的包组成:

核心包包含JdbcTemplate。这个类是一个基础类之一-由Spring框架的JDBC支持提供并使用。

数据源包是实现单元测试数据库存取代码的重要的一部分。它的DriverManagerDataSource能够以一种类似于你已经习惯于JDBC中的用法:只要创建一个新的DriverManagerDataSource并且调用setter方法来设置DriverClassName,Url,Username和Password。

对象包中包含类,用于描述RDBMS查询、更改和存储过程为线程安全的、可重用的对象。

支持包-你可以从这里找到SQLException翻译功能和一些工具类。

1) 模板设计模式

Spring JDBC实现模板设计模式,这意味着,代码中的重复的复杂的任务部分是在模板类中实现的。这种方式简化了JDBC的使用,因为由它来处理资源的创建和释放。这有助于避免普通错误,例如忘记关闭连接等。它执行核心JDBC工作流任务,如语句创建和执行,而让应用程序代码来提供SQL并且提取结果。

2) Spring JDBC异常处理

Spring框架特别强调在传统型JDBC编程中所面临的与下列方案有关的问题:

Spring提供一个抽象异常层,把冗长并且易出错误的异常处理从应用程序代码移到由框架来实现。框架负责所有的异常处理;应用程序代码则能够专注于使用适当的SQL提取结果。

Spring提供了一个重要的异常类层次,以便于你的应用程序代码中可以使用恰当的SQLException子类。

借助于一个抽象异常层,我们成功地实现了数据库独立性而不必改变异常处理。例如,如果你把你的数据库从PostgreSQL改变为Oracle,那么你不必把异常处理从OracleDataException改变到PostgresDataException。Spring能够捕获应用程序服务器特定的异常并抛出一个Spring数据异常。

当处理异常时,Spring检查来自一个数据库连接的元数据可用性以决定数据库产品。它使用这种知识来把SQLException映射到其自己异常层次中的具体的异常上。因此,我们不需要担心专门性的SQL状态或错误代码问题;Spring的数据存取异常不是JDBC特定的,因此你的DAO不必绑定到JDBC(由于其可能抛出的异常)。

四.Spring JDBC示例

在下面两个列表中,我们将使用前面用传统型JDBC实现的业务逻辑为例并且展示使用Spring JDBC版本是多么容易。首先,我们从一个简单的接口开始。

package com.spring.jdbc; import java.util.List; public interface TasksDAO {   public List getTasksNames(); }

接下来,我们提供针对于TasksDAO接口的一种实现。

package com.spring.jdbc; import java.util.Iterator; import java.util.List; import java.sql.ResultSet; import java.sql.SQLException; import javax.sql.DataSource; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationCo

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号