又到春节了,有挺长时间没有写博客了。
节前的最后两天上班,没啥事,玩玩我上回弄的那个Info-Persister的数据持久化代码生成机制吧。
标题很大,其实很简单的一件事情。
一直认为Hibernate和JDO之类的东西过于复杂且效率不高,虽然省却了写SQL的麻烦但是需要编写一个并不简单的配置文件,所以说这些东西也并不能说极大地方便了开发者。
而自己写DAL层代码最痛苦的事情莫过于重复,大量重复的代码,GET/SET让人抓狂。
在.NET的时候,我弄了一个自动生成DAL层的小工具,原理很简单:
1.约定表的名称和字段名称,如表名前加t_XXX,字段名前加f_XXX,工具根据这个生成VO(即Info)。
2.将数据库操作放入DB中,用存储过程代替程序代码中的SQL语句,并约定SP的名称,如p_XXX,工具根据这个生成PO(即Persister)。
我用的是约定而不是配置,因为我一直认为“约定强于配置”。
因此,这个工具相当简单了,读数据库,根据约定,生成VO和PO的代码(注意是源代码!),然后可以在自己的项目中加入生成的代码,一起编译就OK了。
我个人非常推崇这种作法,一是效率,所有的SQL都放在SP中。二是省事,不用再GET/SET敲大堆重复代码。
唯一的就是你需要自己写存储过程,不单是SQL了,还要写SP。
具体实现上就不多说,两个问题解决就一切OK了!