利用Java反射机制+泛型重新封装的BaseDao

 

利用Java反射机制+泛型重新封装的BaseDao

 

 

 

前段时间仿着C#写了个Java版的BaseDao,呵呵,感觉真烂!后来看到有学长利用反射+泛型封装的BaseDao后,心里甚感不快。从来没去探究过Java的反射机制,也从来没想到过自动数据类型映射的做法。于是乎,自己琢磨了下,弄了一个自己的版本,感觉有收获了。实践得真知,我糅合了下自己的理解,以及别人做法的的优点,写了这个版本。感觉有点问题,但还是先帖出来,作为下一个版本的参照目标。

 

BaseDao源码清单(负责SQL命令执行及泛型pojo集合的返回):

 

  

  

DBConnection 源码清单(负责从创建数据库连接,使用了同步):

 

 

 

DBConfigReader 源码清单(负责XML配置文件的内容读取,没用使用三方jar包,仅用了JDK内置的XML相关类):

 

 

 

SQLParamHelper 源码清单(负责Java数据类型与SQL参数数据类型的自动映射,写得有点细,但我觉得细化些好,部分类型还未进行测试):

 

 

 

DBConfig.xml 文件内容(负责保存各类数据库驱动完整包名+类名及连接字串):

 

 

 

------------------------------------------------------------------------------------

 

以下是相关的测试类源码清单!

 

------------------------------------------------------------------------------------

 

UserPojo 源码清单(测试一个简单的Pojo):

 

 

  

 

UserPojohashCodeequals方法重写的测试:

 

 

 

UserPojo测试类输出结果:

 

 

 

UserDao源码清单(负责通知BaseDao类型参数及添加相关业务逻辑代码,这里由于无实际业务逻辑,仅以注释说明):

 

 

 

UserDaoTest源码清单(测试了一下简单的CRUD操作):

 

 

 

测试运行结果为CRUD操作全部通过,控制台输出为:

 

 

 

相关的 SQL Server 数据库脚本:

 

 

   

 

 

以上代码编译及调试环境:Microsoft Vista Home Basic SP1简体中文版 + JDK5.0 + Eclipse3.3 + Microsoft SQL Server 2005

 

 

前面提到感觉这样的封装还是有问题,这个问题就是代码中还是存在SQL命令(排除使用存储过程的情况,这里仅体现封装二字),下个版本干脆就将SQL命令全部使用String[]拼接字段名列表,使用Object[]拼接Where条件列表,分别为CRUD操作提供四个具体的方法,这样我觉得应该算作比较优雅了吧!最重要的是,以数组参数方式自动构建SQL命令时可以很方便地在方法内容对所有SQL参数进行部分校验工作,这样可以提高SQL命令的可靠性。

 

使用Java来实现OOP的确显得很优雅,因为自己可以了解其实现的所有细节,行行代码都尽是自己思维的体现。呵呵!妙哉!

 

 

                                                                                               By CodingMouse

                                                                                               2009331

 

 

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值