代码生成器EST-BPM

一、代码加速器的介绍

      代码加速器是基于Velocity模板,Ant执行脚本,结合项目的开发,可以大大减少开发人员的工作量,把重复的程序配置、通用的功能(CRUD)管理等代码一起生成出来。开发用户仅需要设计好相关的表,配置好生成代码的参数,执行Ant的脚本命令则可。基于此,开发人员可以从重复繁杂的编码工作中解放出来,专注于程序的业务实现。目前代码加速器的模板是基于J.Office的开发平台上的,开发用户也可以根据自己的需要,修改模板,添加模板或删除模板等。


二、使用说明

   1. 在项目中引入代码加速器

    把代码加速器的全部代码放置在开发目录下,如可以放置在metadata目录下,如下图所示:

  
 

  设置好目录后,需要指定代码生成的根目录,即我们需要把代码生成到该目录的上两级目录,在这里,我们需要进入代码加速器的配置。

2. 生成代码步骤

代码加速器的目录结构如下所示


  oa 代码生成器
目录结构文件说明
    conf目录
       代码加速器的配置目录
    lib目录
       代码加速器的依赖包
    templates目录

    为代码生成的模板目录,其下的common目录为通用的应用程序模板,在开发JEE程序时,我们都会有相应的实体类,服务类,数据访问类等,而视图层可以采用多种技术,如Spring MVC,Struts,所以其下的另外两个目录为SpringMVC,Struts视图的模板。

    build.xml
      为代码生成器的脚本命令配置
   specifiedTables
     用于指定生成代码的表

生产代码设置步骤
1. 设置代码产生的目录
    修改conf/generator.properties下的javaOutputLocation参数,使其设置为以下值:
    javaOutputLocation=../../
    在此也可以写成开发环境的项目的绝对路径,如:D:/workspace/joffice/
2. 设置数据库连接
修改conf/generator.properties下的以下参数,并设置正确,如:
# [All Databases]
dbUserid=root
dbPasswd=000
dbSchema=joffice

jdbcDriver=com.mysql.jdbc.Driver
dbUrl=jdbc:mysql://localhost/joffice

【注】在Oracle的环境下,需要特别注意,由于在oracle下,其默认字段是不区分大小写的,因而这对生成的代码并不好,如某实体的属性字段均为大写会给代码带来一些问题。所以可以建多一个Oracle库用于生成代码,并设置其区分大小写字段。这样还不与其维护多一个mysql的库,用于生成代码更为方便些,两个库的不同脚本可以通过powerdesign工具可以比较方便进行转化。

3. 设置实体所在包
    修改conf/PackageNames.properties,加上类似以下代码,告诉生成器把代码生成至哪一个目录包下(左为表名,右为包名):
    duty=personal
errands_register=personal
msg_info=system
msg_type=system
4. 指定生成代码对应的表
    在specifiedTables指定生成的表名,如以下则代表同时生成这两个表
    msg_info
msg_type
5. 执行Ant的命令
在eclipse中的Ant视图中,把codegen/build.xml加进去,执行其缺省的任务(generate)

【说明】


以上步骤1、2仅需要设置一次,其后产生其他表时,则直接设置步骤3、4则可。
生成的文件及路径由conf/ CommonTemplates.properties及conf/FileLoaction.properties两个文件来设置指定的,开发用户若需要生成其他文件,也可以在这两个文件中进行指定。

三、生成代码内容

如我们为以下表生成管理界面,

表news_info则对应生成的文件内容有:


1.    实体类: NewsInfo.java
2.    映射文件: News Info.hbm.xml
3.    Dao接口及实现类:
NewsInfoDao.java
NewsInfoDaoImpl.java
4.    Service接口及实现类 :NewsInfoService.java

NewsInfoServiceImpl.java

5. Action类

        NewsInfoAction.java


6.    测试类:
NewsInfoDaoTestCase.java
7.    配置文件:
app-service.xml
app-dao.xml
app-action.xml
8.   
Ext js
NewsInfoView.js
NewsInfoForm.js

生成的最终界面如下所示:

猜你喜欢

转载自fyjjack.iteye.com/blog/1064437