闲谈orm(Object-Relational Mapping 对象-关系映射)

  关于数据库crud(create retrieve update delete)自动化辅助工具,其中的翘楚必然是orm(对象-关系映射)工具。

   hibernate,activerecord分别可以说是发挥了java,ruby语言哲学到极致的工具,其他动态语言的orm工具大都参考这两者的架构和模式,使用他们的前提是掌握面向对象基础(面向对象3原则及应用)和数据库应用基础(设计范式和SQL语言)。

   相对简单一点的是根据数据库中获得的表结构实现简单crud功能的库,但是因为功能太简单,对于处理表和表之间的关联关系力不从心,在我的实际经验中很早就废弃了。

   说回静态语言,c++语言目前为止没有完整案例的orm工具,因为c++标准库并不提供完整的反射库,只提供了基础的RTTI。没有反射库就写不出orm,所以虽然有一小撮分子研究过自己写反射库,再写orm,不过都流产了,要么就变形了——利用有限的功能变相实现部分功能,在joel的博客上有人发了c++ orm的讨论,应者寥寥,讨论中说到的类库俺看了下,都不完整。

  那么静态语言就真的不行了?受中国亿万开发人员拥护的宝兰公司(IDE部分已经因为入不敷出分拆出codegear公司)的王牌设计Anders(亦为微软设计了.net)所设计开发的vcl库,拥有足够的反射能力,国内一个delphi开发者yyanghhong据此开发出了一个orm工具,据他最后javaeye的帖子中说,将参考hibernate的结构实现delphi版的orm,不过也有1年多未有消息了――可能和我一样,1年前发布的改hibernatetomcat的模块后,也有人问过我相关知识,但一个一直为吃饭忙乎的人是顾不上了。另有一位网友提供了一个开源的delphi orm emvc,目前只出到1.03alpha版,我还没用过。

因为vcl库的强悍,基于他的C++ Builder也拥有同等威力,经过我的研究,delphic++ builder都是有能力实现ORM的。

  在一个orm盛行的年代,静态语言没有自身的orm是痛苦的,对于C++在开发mis功能的时候,目前有些公司采用了搭配python,用python语言的orm库来开发。

   话到这里就结束了,不愁吃饭的话我也想打磨打磨c++orm,呵呵。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值