您的位置:首页 > 其它

十二、mcg-helper业务系统单表业务模块自动化生成model类

2017-09-03 12:59 1656 查看
         《业务系统单表业务模块生成 》示例生成model类、xml映射文件、dao接口、service接口、serviceImpl接口、controller控制类、html页面、js文件。该示例结合教程,能够帮忙大家玩转mcg-helper研发小助手,为考虑到教程过长,分解成八节进行讲解,每节讲解一个代码文件的生成,因涉及从数据库读取表信息,大家启动mcg-helper后,切换到“工作台”,在“数据源”中将数据库信息修改,如图所示:





           为保证与教程同步,请创建表,脚本如下:

CREATE TABLE `mcg_helper_user` (
`user_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '自增主键',
`user_name` varchar(50) DEFAULT NULL COMMENT '用户名称',
`user_pwd` varchar(255) DEFAULT NULL COMMENT '用户密码',
PRIMARY KEY (`user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;


                现从《生成model类》开始讲解,MVC设计模式将数据、业务逻辑、显示进行分离,业界MVC框架数不胜数,想必大家不会陌生的!在这里详解《业务系统单表业务模块生成》示例是如何完成model类的生成,我们先来看看示例教程中流程图所运用的控件:



           可以很清楚的看见,采用data控件、js脚本控件、文件控件完成了生成model类的工作。

                  data控件:读取数据库表,将表信息转换为映射对象数据,如表名、类名、包名、程序变量名、程序类型、表字段名、表字段类型、表字段长度等等;

                  js脚本控件:获取data控件的运行值,对数据进行转换和处理为生成model类需要的直接数据。

                  文件控件:编写freemaker模板语言,将js脚本控件的运行值作为参数,生成想要的model类代码,并保存到指定的文件中。

         下面具体讲解如何运用这三个控件:

                   1、data控件的使用

                   双击data控件,在弹出层默认进入“关联表”选项卡,选择数据源、选择表后,将自动转换数据库表信息与对象的映射关系数据显示在表格中



               切换到“属性”选项卡,编辑一些基本信息,之前选择表后,“类名”,“表名”会自动赋值



               在流程执行中,data控件运行值如下:

{
"userData":{
"record":[
{
"autoincrement":true,
"classField":"userId",
"comment":"自增主键",
"dataType":"Integer",
"include":"java.lang.Integer",
"length":10,
"mandatory":true,
"precision":0,
"primary":true,
"show":false,
"tableField":"user_id",
"tableFieldType":"INT"
},
{
"autoincrement":false,
"classField":"userName",
"comment":"用户名称",
"dataType":"String",
"include":"java.lang.String",
"length":50,
"mandatory":false,
"precision":0,
"primary":false,
"show":false,
"tableField":"user_name",
"tableFieldType":"VARCHAR"
},
{
"autoincrement":false,
"classField":"userPwd",
"comment":"用户密码",
"dataType":"String",
"include":"java.lang.String",
"length":255,
"mandatory":false,
"precision":0,
"primary":false,
"show":false,
"tableField":"user_pwd",
"tableFieldType":"VARCHAR"
}
],
"property":{
"className":"McgHelperUser",
"dataDesc":"用户管理",
"key":"userData",
"name":"读取用户表信息",
"packageName":"com.mcghelper.model",
"tableName":"mcg_helper_user"
}
}
}


               2、JS脚本控件的使用
                      双击js脚本控件,编辑框中默认进入“属性”选项卡,可编辑控件名称、控件Key、说明信息



                     切换到“源代码”选项卡,该控件需要编写原生javascript,主要作用把所有父级的运行值处理为文本控件生成所需要的值,这里只有一个data控件为父级,运行值可以参数上面,编写的代码如下图:



                      在流程执行时,运行值如下:

{
"modelScript":{
"userData":{
"record":[
{
"include":"java.lang.Integer",
"tableField":"user_id",
"dataType":"Integer",
"precision":0,
"length":10,
"show":false,
"mandatory":true,
"classFieldMethod":"UserId",
"classField":"userId",
"tableFieldType":"INT",
"autoincrement":true,
"comment":"自增主键",
"primary":true
},
{
"include":"java.lang.String",
"tableField":"user_name",
"dataType":"String",
"precision":0,
"length":50,
"show":false,
"mandatory":false,
"classFieldMethod":"UserName",
"classField":"userName",
"tableFieldType":"VARCHAR",
"autoincrement":false,
"comment":"用户名称",
"primary":false
},
{
"include":"java.lang.String",
"tableField":"user_pwd",
"dataType":"String",
"precision":0,
"length":255,
"show":false,
"mandatory":false,
"classFieldMethod":"UserPwd",
"classField":"userPwd",
"tableFieldType":"VARCHAR",
"autoincrement":false,
"comment":"用户密码",
"primary":false
}
],
"property":{
"dataDesc":"用户管理",
"name":"读取用户表信息",
"className":"McgHelperUser",
"packageName":"com.mcghelper.model",
"key":"userData",
"tableName":"mcg_helper_user"
}
},
"xmlFileName":"McgHelperUser.xml",
"modelFileName":"McgHelperUser.java"
}
}


           3、文件控件的使用

                 双击文本控件,编辑框默认进入“属性”选项卡,获取为所有父级控件的运行值作为参数,这里父级只有JS脚本控件,参考上图,其中${modelScript.modelFileName }的值应该为“McgHelperUser.java”



                        切换到“源代码”选项卡,文本控件通过编写freemaker模板语言来生成想要的代码,将所有父级的运行值作为参数



                       生成结果如下:

package com.mcghelper.model;

public class McgHelperUser {
public McgHelperUser() {

}

/* 自增主键  */
private Integer userId;
/* 用户名称  */
private String userName;
/* 用户密码  */
private String userPwd;

public Integer getUserId() {
return this.userId;
}
public String getUserName() {
return this.userName;
}
public String getUserPwd() {
return this.userPwd;
}
public void setUserId(Integer userId) {
this.userId = userId;
}
public void setUserName(String userName) {
this.userName = userName;
}
public void setUserPwd(String userPwd) {
this.userPwd = userPwd;
}
}

            到此,我们本节教程讲解完毕,在实际中,结合控件台输出的日志可以很好的调试,以上的运行值也是从控制台中截取的,在mcg-helper控制台不仅输出各控件的参数、运行值等,而且可以自定义输出某个变量的值,这样有助力在有逻辑性的地方可以输出值定位排查问题。

       
mcg-helper的使用指南:http://blog.csdn.net/loginandpwd/article/details/76944900

        mcg-helper研发小助手发布v1.0.0-beta版本:http://blog.csdn.net/loginandpwd/article/details/77447363

        mcg-helper研发小助手软件介绍:http://blog.csdn.net/loginandpwd/article/details/77751566

        生成model类:http://blog.csdn.net/loginandpwd/article/details/77448277

        生成xml映射文件:http://blog.csdn.net/loginandpwd/article/details/77452902

        生成dao接口:http://blog.csdn.net/loginandpwd/article/details/77452927

        生成service接口:http://blog.csdn.net/loginandpwd/article/details/77452946

        生成serviceImpl实现类:http://blog.csdn.net/loginandpwd/article/details/77452979

        生成controller控制类:http://blog.csdn.net/loginandpwd/article/details/77452993

        生成html页面:http://blog.csdn.net/loginandpwd/article/details/77453013

        生成js文件:http://blog.csdn.net/loginandpwd/article/details/77453024
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐