syDataProcess项目

 

项目背景

      这是我的毕业设计作品。上次的generalDAO,是为了演示通过反射机制获取字段信息和拼接SQL语句的方式访问数据库。实现的功能较弱,并且项目的可扩展性不强。这次再对数据访问进行分析和抽象,完成了syDataProcess项目。

 

设计过程

      在generalDAO中,获取信息和拼接字符串是在一起完成的使结构混乱。首先应该分开这两种处理过程

1、在底层实现数据库访问,向上提供统一的接口

2、更高层实现通过反射获取VO类信息,并调用统一的数据库访问接口

 

分层

      首先需要考虑的一个问题是如何对项目进行分层,保证程序具有良好的可扩展性。程序分为数据访问层,Cache层,VO处理层。

0_1304692537C44v

 

接口

      下面定义接口。为了使数据库访问变得方便,且具有更高的灵活性。访问接口应该具有基本的增、删、改、查功能,但是只提供这些功能是不够灵活的,所以要提供SQL语句执行的功能。

1

      DAOBase接口是整个DataProcess系统的基础,DAOBase接口可以在不同层上进行扩展,为不同的层定义更多功能。

      项目中使用Map代表一条数据,其中Map的key表示字段名,value表示值。用List>表示一组数据。参数table表示表名的字符串,condition是表示删除或查询条件的字符串。

 

数据访问层

      数据访问层包含一个对DAOBase的抽象类DAODataAccess,和对各种不同数据库访问的实现

2

 

 

数据缓存层

      数据库访问层用支持MemCached协议的MemCached和Tokyo Tyrant两种服务器。首先定义一个客户端接口,实现访问不同的客户端

3

      实际应用中,需要有一个控制策略,来控制什么时候向缓存服务器存入数据,什么时候取出数据。不同的应用应该有不同的控制策略,但是这些控制策略具有一些共同的东西,比如都具有对管理器的引用,对数据访问层的引用,以及所有控制策略都是基于在进行调用DAOBase中功能进行的操作等。所以就可以定义一个抽象的控制器类,不同的控制策略共同实现这个抽象类

4

 

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

posted @ 2011-05-06 22:35  石莹  阅读(378)  评论(0编辑  收藏  举报