使用自己开发的ORM数据层的好处

使用了对象映射转换层确实可以大幅简化开发工作,但最近研究了各家数据层的有缺点后,我发现自己开发数据层可能更划算些:

1. 向Hibernate等著名ORM产品号称缓存的命中率达90%以上,但如果应用时分布到多台服务器上,甚至是客户端时,其缓存命中率会差得一塌糊涂, 于是乎大家都在说建立在其上建立应用缓存,但应用缓存会带来脏读、冲突等诸多问题。而自己编制数据层就可有选择的处理缓存问题,显著提高效率。

2. 面向对象编程一个很突出的特点就是其支持继承,而继承的实现在数据库设计中有两种方式:

   1) 父子类使用同一张表,特点是效率较高,但多个对象数的据在一起会浪费部分空间

   2) 父子类使用不同的表,并用相同的键值对(ID)关联,其转换的效率会低,且如果某一对象的各个子类都没有附加数据,反而会增加键值对的空间。

   如果出现更加复杂的父子类之间的关联关系,处理不好可能造成循环引用,因此通用的ORM产品都干脆做了很多限制,也就是说其无法完全实现所设计的对象结构体系,而自己设计ORM就可以解决这类问题。

 

3. 更灵活的数据库操作,虽然某些轻型ORM支持对数据库的直接操作,但如果自定义的数据层设得当,实现起来会更加方便。

 

4. 更灵活的数据关联处理,在数据库中表间的关联有级联删除/置空等操作,而实际上对象间的删除及更新处理也相对复杂,有时需要级联删,有时需要置空,而有时又禁止删除,因此使用复杂的配置文件处理来处理去,可能还不如直接写在代码里更直观些。

 

  其实,自己开发数据层耗时也不大,用Hibernate一周完成的事情,自己做可能2周也就出来了,而且后期对象的增减、功能增减可以做的更灵活。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值