Changes between Version 1 and Version 2 of WikiStart


Ignore:
Timestamp:
Jun 12, 2017, 1:50:35 PM (9 years ago)
Author:
ppzhao
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • WikiStart

    v1 v2  
    1 = Welcome to Trac 1.2.1
    2 
    3 Trac is a '''minimalistic''' approach to '''web-based''' management of
    4 '''software projects'''. Its goal is to simplify effective tracking and
    5 handling of software issues, enhancements and overall progress.
    6 
    7 All aspects of Trac have been designed with the single goal to
    8 '''help developers write great software''' while '''staying out of the way'''
    9 and imposing as little as possible on a team's established process and
    10 culture.
    11 
    12 As all Wiki pages, this page is editable, this means that you can
    13 modify the contents of this page simply by using your
    14 web-browser. Simply click on the "Edit this page" link at the bottom
    15 of the page. WikiFormatting will give you a detailed description of
    16 available Wiki formatting commands.
    17 
    18 "[wiki:TracAdmin trac-admin] ''yourenvdir'' initenv" created
    19 a new Trac environment, containing a default set of wiki pages and some sample
    20 data. This newly created environment also contains
    21 [wiki:TracGuide documentation] to help you get started with your project.
    22 
    23 You can use [wiki:TracAdmin trac-admin] to configure
    24 [http://trac.edgewall.org/ Trac] to better fit your project, especially in
    25 regard to ''components'', ''versions'' and ''milestones''.
    26 
    27 
    28 TracGuide is a good place to start.
    29 
    30 Enjoy! [[BR]]
    31 ''The Trac Team''
    32 
    33 == Starting Points
    34 
    35  * TracGuide --  Built-in Documentation
    36  * [http://trac.edgewall.org/ The Trac project] -- Trac Open Source Project
    37  * [http://trac.edgewall.org/wiki/TracFaq Trac FAQ] -- Frequently Asked Questions
    38  * TracSupport --  Trac Support
    39 
    40 For a complete list of local wiki pages, see TitleIndex.
     1[[PageOutline(1-5,索引)]]
     2= 1.引言
     3
     4
     5== 1.1.编写目的
     6
     7
     8[http://139.129.211.72/template/ iProgMan]是为广大软件工程师解决生成代码的问题。在编写程序代码时,通常每个功能模块的基础维护代码逻辑都相同,只是针对的表不同, 根据这其中的规律做成模板,机器就可以根据模板来生成前端和后端的代码了。这样就避开了那些枯燥的重复劳动,使开发人员将时间和精力集中于核心业务,既节省了开发人员的工作时间,也为企业节省了成本。
     9
     10
     11通过预先制作的模板,结合用户配置的数据,生成代码。 如果将生成的代码比作工厂中生成出来的产品,那么数据相当于产品的原材料, 而模板则相当于模具,即输入数据,通过模板加工,生产出代码。
     12
     13== 1.2. 使用技术
     14
     15
     16应用框架使用JAVA语言搭建,用到的主要技术为当前比较流行的开源框架Spring,SpringMVC,mybatis,前端页面使用JSP,脚本使用JQUERY,EASYUI框架。
     17
     18= 2.代码生成
     19
     20
     21下图为生成代码总流程图:\\
     22[[Image(2.png)]]
     23
     24[=#point2.1]
     25== 2.1.第一步:创建项目
     26
     27登录系统,点击“项目”菜单下的子菜单“项目信息”进入页面,点击“添加”按钮创建项目。
     28
     29下图为创建项目窗口:\\
     30[[Image(2_1.png)]]\\
     31字段说明:\\
     32* **项目名称:**项目的中文名称。
     33* **项目编码:**项目的英文名称。
     34* **项目类型:**包括非maven项目和maven项目。非maven项目为所需jar包在项目中,无效下载;maven项目为jar包不在项目中,需要通过pom配置从第三方下载;推荐选择非maven项目。
     35* **项目目录:**是生成的类的最外层包,一般也就是公司等组织网址域名的反写
     36* **项目模块:**项目目录的下个目录,一般为项目编码相同
     37
     38**''案例说明:''**\\
     39[[Image(step_1.png)]] 图2_1_1
     40
     41[[Image(step_2.png)]] 图2_1_2
     42{{{
     43  图2_1_1配置信息对应图2_1_2中的代码,template-demo为“项目编码”,com.idasound.ju321为“项目目录”,tbs为“项目模块”
     44}}}
     45[=#point2.2]
     46== 2.2.第二步:创建数据结构
     47
     48[=#point2.2.1]
     49=== 2.2.1.添加数据库
     50
     51
     52点击“数据结构”菜单下的子菜单“库信息”进入页面,点击“添加”按钮添加数据库。\\
     53[[Image(2_2_1.png)]]\\
     54字段说明:\\
     55* **项目信息:**项目的中文名称,即[#point2.1 2.1第一步:创建项目] 的“项目名称”
     56* **库类型:**目前支持mysql和oracle两种数据库
     57* **库名称:**登录数据库需要的链接名
     58* **库用户名:**登录数据库需要的用户名
     59* **库密码:**登录数据库需要的密码
     60* **库地址:**登录数据库需要的主机名或者IP地址
     61* **库端口:**登录数据库需要的端口:一般myslq为3306,oracle为1521
     62* **库描述:**数据库的中文描述信息
     63
     64
     65**''案例说明:''**\\
     66[[Image(step_2_2_1_1.png)]] 图2_2_1_1
     67{{{
     68  如图2_2_1_1权限系统使用的数据库信息
     69}}}
     70
     71[=#point2.2.2]
     72=== 2.2.2.添加表
     73
     74点击“数据结构”菜单下的子菜单“表信息”进入页面,点击“添加”按钮添加表。\\
     75[[Image(2_2_2.png)]]\\
     76字段说明:\\
     77* **库信息:**数据库的描述信息,即[#point2.2.1 2.2.1添加数据库]的“库描述”
     78* **表名称:**数据库中表的名称,为英文名称
     79* **表描述:**对表信息的描述
     80
     81**''案例说明:''**\\
     82[[Image(step_2_2_2_1.png)]] 图2_2_2_1
     83[[Image(3.png)]] 图2_2_2_2
     84{{{
     85  如图2_2_2_2为数据库template_demo的模型图,需要配置的数据如图2_2_2_1
     86}}}
     87
     88[=#point2.2.3]
     89=== 2.2.3.添加列
     90
     91点击“数据结构”菜单下的子菜单“列信息”进入页面,点击“添加”按钮添加列。\\
     92[[Image(2_2_3.png)]]\\
     93字段说明:\\
     94* **表信息:**数据库中表的信息,即[#point2.2.2 2.2.2添加表]的“表描述”
     95* **列名称:**表中的字段名称,为英文名称
     96* **列描述:**对表中字段含义的解释说明,为中文名称
     97* **列类型:**表中字段的类型,包括字符串,数字,时间
     98* **列是否为空:**表中字段是否为空,页面添加或修改功能做非空校验
     99* **列长度:**表中字段的最大长度,页面添加和修改功能做长度校验
     100[[span(style=color: #FF0000, 快速生成列信息: )]]\\
     101[[span(style=color: #FF0000, 通过目录“数据结构”==>“表信息”进入表信息页面,选择需要添加列的表,点击初始化列信息可快速生成对应表的所有列,不用手动添加每一个列信息)]]
     102
     103**''案例说明:''**\\
     104[[Image(step_2_2_3_1.png)]] 图2_2_3_1
     105[[Image(step_2_2_3_2.png)]] 图2_2_3_2
     106{{{
     107   如模型图2_2_3_2(用户角色关系表)的列信息需要配置的数据为图2_2_3_1
     108}}}
     109
     110[=#point2.3]
     111== 2.3.第三步:创建页面
     112
     113点击“页面”菜单下的子菜单“页面信息”进入页面,点击“添加”按钮添加页面。\\
     114[[Image(2_3.png)]]\\
     115字段说明:\\
     116* **项目信息:**项目的中文名称,即[#point2.1 2.1第一步:创建项目] 的“项目名称”
     117* **模板信息:**包括通用模板(mysql和oracle两个版),多表关联模板。通用模板适用于            单表和多表操作,多表关联模板只使用于多对多的表结构
     118* **类编码:**页面的英文编码,用于生成java代码的文件名称和jsp的文件夹名称等
     119* **类小写编码:**类编码的第一个首字母小写,一般为骆驼命名法
     120* **页面名称:**页面的中文描述名称
     121
     122**''案例说明:''**\\
     123[[Image(step_2_3_1.png)]] 图2_3_1\\
     124[[Image(step_2_3_2.png)]] 图2_3_2\\
     125[[Image(step_2_3_3.png)]] 图2_3_3\\
     126[[Image(step_2_3_4.png)]] 图2_3_4
     127{{{
     128  如图2_3_2为用户角色关系页面的配置,生成代码结构为图2_3_1中红色区域中的内容。图2_3_3为通用模板的展示效果,图2_3_4为多表关联模板展示效果
     129}}}
     130
     131[=#point2.4]
     132== 2.4.第四步:创建页面数据
     133
     134
     135点击“页面”菜单下的子菜单“页面数据”进入页面,点击“添加”按钮添加页面数据。\\
     136[[Image(2_4.png)]]\\
     137字段说明:\\
     138* **表结构:**数据库中表信息,即[#point2.2.2 2.2.2添加表]的“表描述”
     139* **表主键列:**数据库中表信息的主键列,每个表有一个主键,一般在增、删、改和关联别的表都需要主键。即[#point2.2.3 2.2.3添加列]的“列描述”
     140* **数据名称:**对表结构的中文描述名称
     141* **数据编码:**页面数据的英文名称,同一个页面的数据编码不能重复
     142* **页面信息:**表示添加的数据属于那个页面。该数据为[#point2.3 2.3第三步:创建页面]的“页面名称”
     143* **扩展数据:**对页面数据的一个扩展,一般为当前表结构的子表结构。可以通过子表的外键显示当前表结构的所有数据(该数据为[#point2.4 2.4第四步创建页面数据]的“数据名称”)
     144* **扩展数据列:**子表结构的外键列信息,和当前表结构的表主键列关联,可进行表关联查询([#point2.2.3 2.2.3添加列]的“列描述”)
     145
     146**''案例说明:''**\\
     147[[Image(step_2_4_1.png)]] 图2_4_1\\
     148
     149[[Image(step_2_4_2.png)]] 图2_4_2\\
     150
     151[[Image(step_2_4_3.png)]] 图2_4_3\\
     152
     153[[Image(step_2_4_4.png)]] 图2_4_4\\
     154
     155[[Image(step_2_4_5.png)]] 图2_4_5
     156{{{
     157  如图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(角色)的扩展对象
     158}}}
     159
     160[=#point2.5]
     161== 2.5.第五步:创建页面数据元素
     162
     163
     164点击“页面”菜单下的子菜单“页面元素”进入页面,点击“添加”按钮添加页面元素。\\
     165[[Image(2_5.png)]]\\
     166字段说明:\\
     167* **页面信息:**页面名称,即[#point2.3 2.3第三步:创建页面]的“页面名称”
     168* **数据源信息:**页面需要的数据信息,即2.4第四步:创建页面数据的“数据名称”
     169* **列信息:**数据源信息对应的列([#point2.2.3 2.2.3添加列]的“列描述”)
     170* **元素名称:**对“列信息”的描述,生成代码页面中显示的中文名称
     171* **类编码:**英文名称,首字母大写,一个页面中的类编码不能重复
     172* **类小写编码:**类编码的首字母小写
     173* **控件类型:**包括输入框,数字输入框,时间,下拉框,动态下拉框,树状下拉框。动态下拉框和树状下拉框为通过接口获取数据
     174* **实际值:**当控件类型为输入框,数字输入框,时间时,该项不填;当控件类型为下拉框时,填写传给服务器的值,多个值中间用英文逗号“,”隔开;当控件类型为动态下拉框,树状下拉框时,填写服务器返回的编码
     175* **显示值:**当控件类型为输入框,数字输入框,时间时,该项不填;当控件类型为下拉框时,填写页面显示的值,和实际值对应,多个值中间用英文逗号“,”隔开;当控件类型为动态下拉框,树状下拉框时,填写服务器返回的编码
     176* **元素参数:**当控件为输入框,数字输入框,时间和下拉框时,该项不填。当控件类型为动态下拉框,配置json数据{"url":"地址"};当地址有参数时需要配置json数据为{"url":"地址","urlParam":[{"key":"参数编码","val":"参数值"}]};当控件和别的控件有联动时需要配置json数据为{"url":"地址","onSelect":[{"relId":"关联控件code(当前页面中“类小写编码”)","relUrlParam":"参数编码"}]},url地址的格式一般格式为 /模块编码([#point2.1 第一步:创建项目]的“项目模块”)/页面编码([#point2.3 第三步:创建页面]的“类小写编码”)/标记code (queryAll为查询全部;queryTree为树形结构)
     177[[span(style=color: #FF0000, 快速生成信息:)]]\\
     178[[span(style=color: #FF0000, 通过目录“页面”==>“页面信息”进入页面信息页面,选择需要添加元素的页面,点击初始化页面元素可快速生成对应页面包含数据的所有元素信息,不用手动添加每一条信息,然后修改类的编码,控件类型和删除不需要的元素信息)]]
     179
     180**''案例说明:''**\\
     181[[Image(step_2_5_1.png)]] 图2_5_1
     182{{{
     183   图2_5_1为用户角色关系页面需要的控件信息
     184}}}
     185
     186
     187[=#point2.6]
     188== 2.6.第六步:选择页面显示元素
     189
     190
     191点击“页面”菜单下的子菜单“页面配置”进入页面,点击“添加”按钮。\\
     192
     193[[Image(2_6.png)]]\\
     194字段说明:\\
     195* **页面信息:**页面名称,即[#point2.3 2.3第三步:创建页面]的“页面名称”
     196* **页面元素:**元素名称,即[#point2.5 2.5第五步:创建页面]数据元素的“元素名称”
     197* **显示位置:**包括搜索(列表的查询条件),列表(列表展示),添加(添加页面),修改(修改页面)
     198* **显示状态:**包括显示,不显示(控件不可见,一般用于修改的主键元素),不可编辑(添加和修改页面不可以操作)
     199* **显示顺序:**页面中元素的显示顺序
     200[[span(style=color: #FF0000,快速生成信息:)]]\\
     201[[span(style=color: #FF0000,当2.5第五步:创建页面数据元素完成后,可以通过目录“页面”==>“页面信息”进入页面信息页面,选择需要添加配置的页面,点击初始化页面配置可快速生成对应页面包含元素的所有页面配置,不用手动添加每一条信息,然后修改显示顺序和删除不需要的配置)]]
     202
     203**''案例说明:''**\\
     204[[Image(step_2_6_1.png)]] 图2_6_1
     205{{{
     206   图2_6_1为用户角色关系页面搜索,列表,添加和修改区域显示的控件的配置
     207}}}
     208
     209
     210[=#point2.7]
     211== 2.7.第七步:生成代码和下载
     212
     213
     214点击“项目”菜单下的子菜单“项目信息”进入页面。\\
     215首先选择要生成的项目,点击生成代码即生成了该项目的所有代码,点击下载可打包下载整个项目。\\
     216如果修改了页面信息,也可以通过“页面”菜单下的子菜单“页面信息”进入页面,选择修改的页面信息,点击生成代码,可以单独生成单个页面(速度比较快),再进入项目信息页面下载
     217
     218
     219
     220= 3.案例
     221
     222下图为案例的数据库表结构信息: //
     223
     224
     225[[Image(3.png)]]//
     226* **t_bs_user:**用户表
     227* **t_bs_role:**角色表
     228* **t_bs_menu:**权限表
     229* **t_bs_user_role:**用户角色关系表
     230* **t_bs_role_menu:**角色权限表
     231
     232
     233案例访问地址:[http://iprogman.idasound.com/demo/demo/ http://iprogman.idasound.com/demo/demo/]\\
     234案例配置访问地址:[http://iprogman.idasound.com/demo/template/ http://iprogman.idasound.com/demo/template/]\\
     235
     236
     237== 3.1.案例配置数据
     238
     239案例配置数据如下图菜单:\\
     240[[Image(3_1.png)]]
     241
     242
     243== 3.2.案例展示
     244
     245
     246案例展示如下图菜单:\\
     247[[Image(3_2.png)]]
     248
     249
     250== 3.3.案例代码
     251
     252代码下载地址:[https://github.com/panpanzhao/template https://github.com/panpanzhao/template]\\
     253
     254[[span(style=color: #FF0000,注意:需要修改配置文件/demo/src/main/resources/jdbc.properties的数据库连接配置)]]
     255
     256