wiki:WikiStart

Version 6 (modified by ppzhao, 9 years ago) (diff)

--

1.引言

1.1.编写目的

​iProgMan是为广大软件工程师解决生成代码的问题。在编写程序代码时,通常每个功能模块的基础维护代码逻辑都相同,只是针对的表不同, 根据这其中的规律做成模板,机器就可以根据模板来生成前端和后端的代码了。这样就避开了那些枯燥的重复劳动,使开发人员将时间和精力集中于核心业务,既节省了开发人员的工作时间,也为企业节省了成本。

通过预先制作的模板,结合用户配置的数据,生成代码。 如果将生成的代码比作工厂中生成出来的产品,那么数据相当于产品的原材料, 而模板则相当于模具,即输入数据,通过模板加工,生产出代码。

1.2. 使用技术

应用框架使用JAVA语言搭建,用到的主要技术为当前比较流行的开源框架Spring,SpringMVC,mybatis,前端页面使用JSP,脚本使用JQUERY,EASYUI框架。

2.代码生成

下图为生成代码总流程图:

2.1.第一步:创建项目

登录系统,点击“项目”菜单下的子菜单“项目信息”进入页面,点击“添加”按钮创建项目。

下图为创建项目窗口:

字段说明:

  • 项目名称:项目的中文名称。
  • 项目编码:项目的英文名称。
  • 项目类型:包括非maven项目和maven项目。非maven项目为所需jar包在项目中,无效下载;maven项目为jar包不在项目中,需要通过pom配置从第三方下载;推荐选择非maven项目。
  • 项目目录:是生成的类的最外层包,一般也就是公司等组织网址域名的反写
  • 项目模块:项目目录的下个目录,一般为项目编码相同

案例说明:

  图2_1_1配置信息对应图2_1_2中的代码,template-demo为“项目编码”,com.idasound.ju321为“项目目录”,tbs为“项目模块”

图2_1_1

图2_1_2

2.2.第二步:创建数据结构

2.2.1.添加数据库

点击“数据结构”菜单下的子菜单“库信息”进入页面,点击“添加”按钮添加数据库。

字段说明:

  • 项目信息:项目的中文名称,即2.1第一步:创建项目 的“项目名称”
  • 库类型:目前支持mysql和oracle两种数据库
  • 库名称:登录数据库需要的链接名
  • 库用户名:登录数据库需要的用户名
  • 库密码:登录数据库需要的密码
  • 库地址:登录数据库需要的主机名或者IP地址
  • 库端口:登录数据库需要的端口:一般myslq为3306,oracle为1521
  • 库描述:数据库的中文描述信息

案例说明:

  如图2_2_1_1权限系统使用的数据库信息

图2_2_1_1

2.2.2.添加表

点击“数据结构”菜单下的子菜单“表信息”进入页面,点击“添加”按钮添加表。

字段说明:

  • 库信息:数据库的描述信息,即2.2.1添加数据库的“库描述”
  • 表名称:数据库中表的名称,为英文名称
  • 表描述:对表信息的描述

案例说明:

  如图2_2_2_2为数据库template_demo的模型图,需要配置的数据如图2_2_2_1

图2_2_2_1 图2_2_2_2

2.2.3.添加列

点击“数据结构”菜单下的子菜单“列信息”进入页面,点击“添加”按钮添加列。

字段说明:

  • 表信息:数据库中表的信息,即2.2.2添加表的“表描述”
  • 列名称:表中的字段名称,为英文名称
  • 列描述:对表中字段含义的解释说明,为中文名称
  • 列类型:表中字段的类型,包括字符串,数字,时间
  • 列是否为空:表中字段是否为空,页面添加或修改功能做非空校验
  • 列长度:表中字段的最大长度,页面添加和修改功能做长度校验

快速生成列信息:
通过目录“数据结构”==>“表信息”进入表信息页面,选择需要添加列的表,点击初始化列信息可快速生成对应表的所有列,不用手动添加每一个列信息

案例说明:

   如模型图2_2_3_2(用户角色关系表)的列信息需要配置的数据为图2_2_3_1

图2_2_3_1

图2_2_3_2

2.3.第三步:创建页面

点击“页面”菜单下的子菜单“页面信息”进入页面,点击“添加”按钮添加页面。

字段说明:

  • 项目信息:项目的中文名称,即2.1第一步:创建项目 的“项目名称”
  • 模板信息:包括通用模板(mysql和oracle两个版),多表关联模板。通用模板适用于 单表和多表操作,多表关联模板只使用于多对多的表结构
  • 类编码:页面的英文编码,用于生成java代码的文件名称和jsp的文件夹名称等
  • 类小写编码:类编码的第一个首字母小写,一般为骆驼命名法
  • 页面名称:页面的中文描述名称

案例说明:

  如图2_3_2为用户角色关系页面的配置,生成代码结构为图2_3_1中红色区域中的内容。图2_3_3为通用模板的展示效果,图2_3_4为多表关联模板展示效果

图2_3_1
图2_3_2
图2_3_3
图2_3_4

2.4.第四步:创建页面对象

点击“页面”菜单下的子菜单“页面对象”进入页面,点击“添加”按钮添加页面对象。

字段说明:

  • 表结构:数据库中表信息,即2.2.2添加表的“表描述”
  • 表主键列:数据库中表信息的主键列,每个表有一个主键,一般在增、删、改和关联别的表都需要主键。即2.2.3添加列的“列描述”
  • 对象名称:对表结构的中文描述名称
  • 对象编码:页面对象的英文名称,同一个页面的对象编码不能重复
  • 页面信息:表示添加的数据属于那个页面。该数据为2.3第三步:创建页面的“页面名称”
  • 扩展对象:对页面对象的一个扩展,一般为当前表结构的子表结构。可以通过子表的外键显示当前表结构的所有数据(该数据为2.4第四步创建页面对象的“对象名称”)
  • 扩展对象列:子表结构的外键列信息,和当前表结构的表主键列关联,可进行表关联查询(2.2.3添加列的“列描述”)

案例说明:

  如图2_3_3要展示的用户角色关系页面,需要配置页面需要的对象,
  如图2_4_5中的t_bs_user_role数据不能展示用户名和角色名称,
  需要对t_bs_user_role数据中的USER_ID和ROLE_ID扩展.
  图2_4_1为页面需要的全部对象,图2_4_2是页面展示的主要对象,其中图2_4_3是对图2_4_2中的USER_ID(用户)的扩展对象,图2_4_4是对图2_4_3的ROLE_ID(角色)的扩展对象

图2_4_1

图2_4_2

图2_4_3

图2_4_4

图2_4_5

2.5.第五步:创建页面属性

点击“页面”菜单下的子菜单“页面属性”进入页面,点击“添加”按钮添加页面属性。

字段说明:

  • 页面信息:页面名称,即2.3第三步:创建页面的“页面名称”
  • 对象信息:页面需要的数据信息,即2.4第四步:创建页面对象的“对象名称”
  • 列信息:数据源信息对应的列(2.2.3添加列的“列描述”)
  • 属性名称:对“列信息”的描述,生成代码页面中显示的中文名称
  • 属性编码:英文名称,首字母大写,一个页面中的属性编码不能重复
  • 属性小写编码:属性编码的首字母小写
  • 控件类型:包括输入框,数字输入框,时间,下拉框,动态下拉框,树状下拉框。动态下拉框和树状下拉框为通过接口获取数据
  • 实际值:当控件类型为输入框,数字输入框,时间时,该项不填;当控件类型为下拉框时,填写传给服务器的值,多个值中间用英文逗号“,”隔开;当控件类型为动态下拉框,树状下拉框时,填写服务器返回的编码
  • 显示值:当控件类型为输入框,数字输入框,时间时,该项不填;当控件类型为下拉框时,填写页面显示的值,和实际值对应,多个值中间用英文逗号“,”隔开;当控件类型为动态下拉框,树状下拉框时,填写服务器返回的编码
  • 属性参数:当控件为输入框,数字输入框,时间和下拉框时,该项不填。当控件类型为动态下拉框,配置json数据{"url":"地址"};当地址有参数时需要配置json数据为{"url":"地址","urlParam":[{"key":"参数编码","val":"参数值"}]};当控件和别的控件有联动时需要配置json数据为{"url":"地址","onSelect":[{"relId":"关联控件code(当前页面中“属性小写编码”)","relUrlParam":"参数编码"}]},url地址的格式一般格式为 /模块编码(第一步:创建项目的“项目模块”)/页面编码(第三步:创建页面的“属性小写编码”)/标记code (queryAll为查询全部;queryTree为树形结构)

快速生成信息:
通过目录“页面”==>“页面信息”进入页面信息页面,选择需要添加属性的页面,点击初始化页面属性可快速生成对应页面包含数据的所有属性信息,不用手动添加每一条信息,然后修改类的编码, 控件类型和删除不需要的属性信息

案例说明:

   图2_5_1为用户角色关系页面需要的控件信息

   动态下拉框的配置说明:
   如图2_5_2地址配置中tbs对应图2_5_3中的项目配置中的项目模块,tbsUser和tbsRole对应图2_5_4页面配置中的小写编码,
   用户中的实际值和显示值都对应图2_5_5中的属性小写编码。
   如果是树形下拉框和动态下拉框相似,区别是queryAll换成queryTree,并且需要添加查询条件如图2_5_6

图2_5_1

图2_5_2

图2_5_3

图2_5_4

图2_5_5

图2_5_6

2.6.第六步:选择页面显示属性

点击“页面”菜单下的子菜单“页面配置”进入页面,点击“添加”按钮。


字段说明:

  • 页面信息:页面名称,即2.3第三步:创建页面的“页面名称”
  • 页面元素:元素名称,即2.5第五步:创建页面页面对象的“属性名称”
  • 显示位置:包括搜索(列表的查询条件),列表(列表展示),添加(添加页面),修改(修改页面)
  • 显示状态:包括显示,不显示(控件不可见,一般用于修改的主键元素),不可编辑(添加和修改页面不可以操作)
  • 显示顺序:页面中元素的显示顺序

快速生成信息:
当2.5第五步:创建页面对象属性完成后,可以通过目录“页面”==>“页面信息”进入页面信息页面,选择需要添加配置的页面,点击初始化页面配置可快速生成对应页面包含元素的所有页面配置,不用手动添加每一条信息,然后修改显示顺序和删除不需要的配置

案例说明:

   图2_6_1为用户角色关系页面搜索,列表,添加和修改区域显示的控件的配置

图2_6_1

2.7.第七步:生成代码和下载

点击“项目”菜单下的子菜单“项目信息”进入页面。
首先选择要生成的项目,点击生成代码即生成了该项目的所有代码,点击下载可打包下载整个项目。
如果修改了页面信息,也可以通过“页面”菜单下的子菜单“页面信息”进入页面,选择修改的页面信息,点击生成代码,可以单独生成单个页面(速度比较快),再进入项目信息页面下载

3.案例

下图为案例的数据库表结构信息:

  • t_bs_user:用户表
  • t_bs_role:角色表
  • t_bs_menu:权限表
  • t_bs_user_role:用户角色关系表
  • t_bs_role_menu:角色权限表

案例访问地址:​http://iprogman.idasound.com/demo/demo
案例配置访问地址:​http://iprogman.idasound.com/demo/template

3.1.案例配置数据

案例配置数据如下图菜单:

3.2.案例展示

案例展示如下图菜单:

3.3.案例代码

代码下载地址:​https://github.com/idasound/iProgMan

注意:需要修改配置文件/demo/src/main/resources/jdbc.properties的数据库连接配置

Attachments (35)

Download all attachments as: .zip