1.3.2 使用SQL和JDBC手工实现持久层

用Java实现持久化最常用的方法就是手工写SQL和JDBC。毕竟,开发者们熟悉关系型数据库管理系统,理解SQL,知道如何操作表格和外键。此外,他们也会经常使用人们熟知的DAO模式来隐藏复杂的JDBC代码以及不可移植的SQL文。

DAO模式是一种很好的模式,即使在ORM中,我们仍然推荐您使用DAO模式。然而,这种手工实现持久化的方式还是需要商榷的,尤其那些需要支持多个SQL dialect的系统。这当然是一种耗时费力的工作。此外,当需求发生变化的时候,我们需要花费更多的精力来修改和维护这些手工书写的代码。

为什么不为你的项目实现一种简单的ORM框架呢,而且这些代码可以在以后的项目中得以重用。许多开发者也采用了这种方法,也出现了许多开发者自己编写的对象/关系持久层。然而,我们并不推荐这种方式。实际上无论是商业软件,还是开源软件,都已经存在了比较完美的解决方案。所以无论从经济还是技术方面考虑,我们相信这些现存的解决方案都能适合你。而且这些专门的解决方案会你自己开发的解决方案更好一些。

开发一种合理的ORM可能需要耗费开发人员数月的时间。举例来说,Hibernate有43000行的实现代码,12000行的测试代码。这些可能都比你自己的解决方案要复杂的多。因为持久层框架的开发人员在这方面有着丰富的经验,所以许多细节都会被考虑到。尽管有些时候,框架未必能够完全满足你的需求,但是花费时间自己开发一个持久层框架还是不值得的。任何的ORM都会去处理那些通用的场景,而往往这些通用的场景是会降低您的生产性的。而我们应当只关心那些只属于系统自身的场景。

不要陷入非我发明的症状中,也不要仅仅是为了避免学习第三方软件的学习曲线而自己去实现自己的持久化方案。就算是你认为所有的ORM框架都很疯狂,而你有喜欢和SQL打交道的话,那么也有一些现存的框架,它们并没有完全的实现ORM。例如,iBatis是一个开源的持久化层,这个框架负责处理那些冗长的JDBC代码,而你可以自己去处理那些SQL。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值