syDataProcess项目
项目背景
这是我的毕业设计作品。上次的generalDAO,是为了演示通过反射机制获取字段信息和拼接SQL语句的方式访问数据库。实现的功能较弱,并且项目的可扩展性不强。这次再对数据访问进行分析和抽象,完成了syDataProcess项目。
设计过程
在generalDAO中,获取信息和拼接字符串是在一起完成的使结构混乱。首先应该分开这两种处理过程
1、在底层实现数据库访问,向上提供统一的接口
2、更高层实现通过反射获取VO类信息,并调用统一的数据库访问接口
分层
首先需要考虑的一个问题是如何对项目进行分层,保证程序具有良好的可扩展性。程序分为数据访问层,Cache层,VO处理层。
接口
下面定义接口。为了使数据库访问变得方便,且具有更高的灵活性。访问接口应该具有基本的增、删、改、查功能,但是只提供这些功能是不够灵活的,所以要提供SQL语句执行的功能。
DAOBase接口是整个DataProcess系统的基础,DAOBase接口可以在不同层上进行扩展,为不同的层定义更多功能。
项目中使用Map代表一条数据,其中Map的key表示字段名,value表示值。用List>表示一组数据。参数table表示表名的字符串,condition是表示删除或查询条件的字符串。
数据访问层
数据访问层包含一个对DAOBase的抽象类DAODataAccess,和对各种不同数据库访问的实现
数据缓存层
数据库访问层用支持MemCached协议的MemCached和Tokyo Tyrant两种服务器。首先定义一个客户端接口,实现访问不同的客户端
实际应用中,需要有一个控制策略,来控制什么时候向缓存服务器存入数据,什么时候取出数据。不同的应用应该有不同的控制策略,但是这些控制策略具有一些共同的东西,比如都具有对管理器的引用,对数据访问层的引用,以及所有控制策略都是基于在进行调用DAOBase中功能进行的操作等。所以就可以定义一个抽象的控制器类,不同的控制策略共同实现这个抽象类
VO处理层
这一层处理过程是接受用户传入的一个VO类的类名,通过反射机制判断类中的方法,获得数据库表中的字段信息。再通过调用DataBase定义的方法,完成对VO对象的增、删、改、查操作。
由于处理过程跟我以前写的一篇文章类似,这里不做过多叙述。
(generalDAO:http://www.cnblogs.com/S-E-P/archive/2010/09/20/2045053.html)
目前基本的功能已经完成,sy_DataProcess.jar包含数据访问层和缓存层,sy_DataProcessVO.jar包含VO处理层
项目地址:http://code.google.com/p/sy-data-process/
API参考文档:
http://sy-data-process.googlecode.com/svn/trunk/DataProcess/doc/index.html(syDataProcess.jar)
http://sy-data-process.googlecode.com/svn/trunk/DataProcessVO/doc/index.html(syDataProcessVO.jar)
获得源码或技术讨论请 E-mail:sy.ExtremeProgrammer@gmail.com