在没有做开发平台之前,以前为了节约软件开发的工作量,制作过一个根据数据库表结构,然后自动生成所有的程序代码的工具。现在将制作的原理以及需要注意的地方在描述一下,有兴趣的朋友,可以交流。
在做基于数据库结构的源代码生成时,主要是针对表的增、删、改、查的工作。
以前在做平台之前,觉得基于数据库系统的开发,就是增、删、改、查这些工作,我将这些代码生成了。那就节约了一大部分的代码量。但后来发现生成的代码,其实不是完全拿来就能用的,总是需要再此基础上做些改动。
这样只能保证第一次生成时,是有价值的。第二次就会把以前的改动工作覆盖掉了。
当然这是在做完了,基于数据库的代码生成工具之后,才发现的一个问题,也是这个原因所以才真正的做起了后来的开发平台。
但是一般的公司,估计想要做一个完全的开发平台还是有一定的难度。因此说一下基于数据库的代码生成器还是有一定的价值的。
做一个数据库的代码生成器,要分几块功能。
1、数据库结构的读取,包括表、视图、存储过程以及查询语句。
2、选择一个觉得自己项目采用的框架结构。一般你可能会采用SSH模式。
3、制作一批公共组件,如果做成通用的组件,尽量做成组件。这样将生成的代码或者配置文件越少越好。
4、制作一批样式代码。这些样式代码就是最终你希望代码生成器需要生成的代码。
5、制作一个代码生成器,可以根据数据库结构生成所需的代码。
6、制作模板编辑器,可以更容易方便的修改模板。
以上是需要做的功能,最近看到网上一些想要开源的快速开发平台,能够快速的生成对表的增、删、改、查代码的,基本都是采用这种思路在做。
不过做这样的系统,要注意以下的几个地方:
1、增加、修改表的数据时,需要考虑外键的情况。不能什么东西都是输入框解决。有些下拉式框,有些时选择框。因此最好不要直接根据表结构就生成。要针对模板的要求,设置具体的样式。
2、不能只考虑单表的情况,项目中很多都是多表操作,比如主从表,或者有些输入项是多项输入的。
3、查询时,要考虑关联查询。
4、要考虑权限,只读性。
总之单纯的根据表结构来生成源代码,这个工作已经变得意义不大。只能生成Hibernate代码或者IBatis代码等。这样才有价值一些。
因此关键还是看你的公共组件的设计程度。公共组件设计好了。那在生成的代码做改动的工作量就不大了。