正在加载

打算自己写一个DAO框架

| 2009年7月12日星期日


最近在公司看项目看的这叫一个头痛,台湾人居然这么喜欢用VB,真是令我崩溃,看惯了C#和Java风格再看VB语法真是怎么看怎么别扭。还好目前项目短期目标还是Java的那个系统,令人头痛的VB就先放下吧。

从Java项目的设计来看,这个次级Vendor的技术还是相当不错的,层次分明。不得不说台湾人的技术很不错,他们没有大外包公司,但是他们接包的能力相当强悍了。IntelliSys作为台湾第三大软件公司居然只有不到200人,这在大连简直是不可能的。做Java项目的公司是IntelliSys给我们找的,估计会更小。

但是这项目也不是说就没有让人大跌眼镜的地方。项目中大量应用了工厂模式,生产DAO对象。但是他们居然是用new来产生对象。。。。我靠,用new写死了我要你的DAOFactory干啥??

而且DAO的层次设计也不是十全十美的,所有的SQL语句都是写死的,每一个DAO类都用自己的SQL语句去执行CRUD。我还是觉得如果业务逻辑不复杂的情况,能用一个公用的父类实现全部的操作就行了,如果某个DAO的逻辑,或者某一个CRUD操作比较复杂的话咱们可以override父类嘛。。

于是就有了目前这个雏形的想法





DAOSchema 用反射实现CRUD操作,作为默认实现,DAO子类则按照自己需要实现部分操作即可。其他的主要是各种辅助类,用于构建查询语句的Builder,用于访问数据库执行操作的DBAccess等等。具体的配置考虑通过Annotation实现,或者直接通过命名实现(这个不太可能了,毕竟很复杂的东西是实现不了的,比如多对多)

如果你喜欢本文,把它分享到 Twitter / 校内 / 鲜果 / Digg
或者把它收藏到 Delicious