频 道 直 达 - 新闻 - 培训 - 软件 - 教程 - 前沿 - 组网 - 系统应用 - 安全 - 编程 - 存储 - 操作系统 - 数据库 - 服务器 - 专题 - 产品 - 案例库 - 读书 - 博客 - BBS
51CTO.COM_中国最大的网络技术网站
找资料:

5.3.1 处理失控的JDBC代码

作者: [美]Craig Walls Ryan Breidenbach著/毕庆红/王军等译 出处:人民邮电出版社  2008-07-25 16:42    砖    好    评论   进入论坛
阅读提示:《Spring in Action(第二版)中文版》第5章使用数据库,这一章主要讲述的是定义Spring的数据访问支持、配置数据库资源、使用Spring的JDBC框架以及集成Hibernate、JPA和iBATIS,本小节为大家介绍处理失控的JDBC代码。

5.3  在Spring里使用JDBC

存留技术有很多种,Hibernate、iBATIS和JPA只是其中的几种而已。尽管如此,很多程序还在以古老的方式把Java对象写入到数据库。“try并返回true”的方法很适合老式JDBC。

这有什么不好吗?JDBC不要求我们掌握其他框架的查询语言,它是基于SQL这种数据访问语言的。另外,在使用JDBC时,可以更细致地调整数据访问的性能。JDBC还允许我们利用数据库的特有功能,而其他框架可能不鼓励甚至禁止使用它们。

再者,JDBC可以让我们在比存留框架低得多的层次上处理数据,能够访问和操作数据库里单独的字段。这种细致访问方法在有些程序里是很方便的,比如报告程序,如果把数据包装为类,而稍后惟一要做的只是把它解包为原始的数据,那就没有太大的意义了。
JDBC也不是十全十美的。它具有强大的功能、灵活性和其他一些优点,但也有缺点。

5.3.1  处理失控的JDBC代码

JDBC为我们提供了一个API来处理数据库,我们要负责处理与数据库访问相关的一切事宜,其中包括管理数据库资源和处理异常。
对于曾经利用JDBC把数据插入到数据库的程序员来说,清单5.1的代码应该并不陌生。
 
程序清单5.1 利用JDBC在数据库里插入一行

 

失控的代码!这二十多行代码就是向数据库插入一个简单的对象。对于JDBC操作来说,简单是其特点,但为什么要用这么多行代码才能做如此简单的事情呢?实际上不是这样的,只有几行是真正完成插入操作的。但是JDBC要求我们正确地管理连接和语句,还要处理可能抛出的SQLException。

再来看一看程序清单5.2,它使用传统的JDBC来更新数据库里motorist表的一行。
 
程序清单5.2 使用JDBC在数据库里更新一行

 

粗看之下,清单5.2与5.1似乎是相同的。而实际上,除了SQL字符串和创建这个语句的那一行,这两段代码是完全相同的。同样的,这里也使用了大量代码来完成一件很简单的事情,而且有很多重复的代码。在理想情况下,我们只需要编写与特定任务相关的代码,这些才是清单5.2与5.1之间的不同之处,其他都是不变的“套话”。

为了完成对于传统JDBC的介绍,我们再来看一看如何从数据库获取数据。从程序清单5.3可以看出,这些代码也不简单。
 
程序清单5.3 使用JDBC从数据库查询一行

 

这段代码与前面的插入和更新范例一样冗长,甚至是更复杂。这似乎印证了Pareto法则 :只有20%代码是查询操作所必需的,而80%代码是样板代码。

现在可以看出,大部分JDBC代码是用于创建连接和语句、进行异常处理的样板代码。把这个情况说明之后,我们就不会再展示这种劣质代码了。

但实际上这些样板代码是很重要的。清理资源和处理错误提高了数据访问的健壮性,没有这些操作,就不能发现错误,就会让资源处于打开状态,从而导致意外的代码和资源泄漏。正是因为这些原因,我们才让框架来处理这些样板代码,从而确保这些代码是存在的,而且是正确的。

【责任编辑:夏书 TEL:(010)68476606】

回书目   上一节   下一节
专题
Spring开源框架技术
Spring in Action(第二版)中文版
Head First Java(中文版)
庆祝“世界系统管理员日”
Head First Servlets & JSP(中文版)
我也说两句

匿名发表

(如果看不清请点击图片进行更换)


中 国 最 大 的 网 络 技 术 网 站 ·
技 术 成 就 梦 想
订阅技术快讯
电子杂志下载
名称:SQL Server数据库管理精品黄皮书
简介:书中文章经过精挑细选,便于用户能根据自己的实际工作和学习,快速在本书寻找到相关资料。内容涵盖了SQL Server的安装与升级、语句查询、数据备份和恢复、自动化任务、数据同步、数据字典、安全和预防、性能和优化、集群等各方面应用信息,以及DBA管理人员在数据库管理工作中
名称:2007路由技术大全
简介:《2007路由技术大全》由51CTO.com网站特别策划制作,该书包括路由器技术、路由器产品、路由器配置、安全设置、路由器故障处理、路由器密码恢复,以及广大网友在实践使用中的心得经验和技巧文章,内容注重实用性,适用于初学者入门,也适合多年从业者提高,是一本实践和理论完
名称:网络安全精品应用黄皮书
简介:《2007精品网络安全黄皮书》包括了9个大类24个小类, 800余篇文章,内容包含了熊猫烧香病毒、DDOS攻击、ARP病等热点问题的介绍及解决方案。从病毒查杀、防范、系统、数据等各方面的安全设置到黑客技术的了解、防范,涉及到了安全应用的全部领域, 由浅至深内容全面。
Windows Server 2008专题
Windows Server 2008专题
庆祝“世界系统管理员日”
庆祝“世界系统管理员日”
浏览器的战国时代
浏览器的战国时代
· 浏览器的战国时代
· CCNA认证考试Pass必备
· 无线网络环境
· 无线路由器故障处理
· 解析35岁技术人的价值..
· 无线重中之重:安全问题
· 无线局域网基本知识
· 家庭无线局域网
· 华为七千人主动辞职规..
· 微软出价446亿美元收购..
· 虚拟化的“赤壁之战”
· 802.11n:下一代的无线..
· 脉冲无线电uwb专题
· AIX操作系统管理应用
· 云计算时代来临
· 求职必杀技 决战面试官
ARP攻击防范与解决方案
ARP攻击防范与解决方案
SQL Server 2008/2005全解
SQL Server 2008/2005全解
SOA 面向服务架构
SOA 面向服务架构
· SOA 面向服务架构
· SQL Server 2008/2005..
· Apache技术专题
· 三层交换技术专题
· SQL Server入门到精通
· 无线网状网(MESH)
· Windows远程桌面应用
· C#技术开发指南
· Apache技术专题
· Windows集群服务应用
· C#技术开发指南
· 文档格式标准开战 OOXM..
· 路由器设置与口令恢复
· Linux 集群技术专题
· PHP开发应用手册
· SOA 面向服务架构
ARP攻击防范与解决方案
ARP攻击防范与解决方案
SQL Server 2008/2005全解
SQL Server 2008/2005全解
SQL Server入门到精通
SQL Server入门到精通
· SQL Server入门到精通
· SQL Server 2008/2005..
· SOA 面向服务架构
· Apache技术专题
· C#技术开发指南
· 三层交换技术专题
· Apache技术专题
· C#技术开发指南
· Windows远程桌面应用
· 企业数据恢复指南
· Windows集群服务应用
· 路由器设置与口令恢复
· Linux 集群技术专题
· SOA 面向服务架构
· 了解统一威胁管理(UTM)..
· 解析35岁技术人的价值..