陈隽伟 IBM 中国软件实验室(CSDL SH) 2004 年 10 月 28 日本文选取了 DB2 数据库访问程序这样一个角度,介绍了AOP(面向方面编程)的优点,并集中讨论了如何重构访问并操作 DB2 数据库的代码。 简介 数据库访问程序几乎是每个投入使用的数据应用都不可或缺的模块,所以本文中的代码片断和谈论的话题一定会让你有似曾相识的感觉。这里,我们集中讨论了如何重构访问并操作 DB2 数据库的代码,同样的经验也适用于其它典型的关系型数据库,如 Oracle、Sybase 和 SQL Server。 一个典型的数据应用中,数据管理功能通常包括四个基本操作,即创建、检索、更新和删除(即 Create、Query、Update、Delete)。 如何合理地安排和组织这些操作,并且保证它们均被可靠地执行就构成了数据应用的核心模块;但在实际应用中,并不是我们编写的每一行代码都和这些业务逻辑有关;事实上有相当数量的代码都是用来完成一些基础操作,诸如获取数据库连接,增加数据库事务的支持,捕捉并且处理异常,程序运行日志的记录等等。 这些不仅让我们的程序显得有些冗长,而且常常会一改而动全身,业务逻辑的表述也变得不再清晰。 那让我们扔掉这些代码吧? 这可不行,扔掉它们程序就再也运行不起来了。万一将来某个数据库连接参数修改了怎么办? 你可得修改所有需要连接数据库的模块了。这么多头痛的问题过去困扰着开发人员,现在依然如此,但我们希望将来能变得好起来。AOP(面向方面编程)能帮助我们做得更好,它能帮助重构我们的代码,在不改变模块功能的基础上让代码变得更加简洁,清晰。 本文主要涉及以下内容: - 传统的 DB2 数据库访问程序
- AOP 能够给我们带来什么
- 抛砖引玉
传统的 DB2 数据库访问程序 让我们先来温习几段代码,它们将从一个数据库连接池中得到可用的数据库连接,然后对数据库进行一些操作,操作完毕后再将这个连接返还给连接池。在此基础上,我们为这些数据库操作增加了对事务的支持,保证它们对数据库的更改要么同时成功,要么同时恢复如初。 相信每位编写过 DB2 数据库访问模块的开发人员都设计过类似的代码,我们长期以来一直都这么做,可这是最好的么?我们还能做得更好么?一开始,先让我们来分析一下这些代码片断的特点吧。 代码片断 1:DB2 数据库连接池的接口
public interface DB2ConnectionPool { public Connection getConnection(String url, String userName, String password) throws SQLException; public boolean putConnection(Connection connection); public void registerConnection(String url, String userName, String password); } |
| 文章录入:enadd 责任编辑:enadd |
|
上一篇文章: 如何在 DB2 上为 AIX5L 设置 unixODBC 下一篇文章: VisualC#中实现DB2数据库编程 |
| 【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 |
|