model init plan - jmr-source/doc GitHub Wiki
###介绍###
在模型转换的时候,可以通过预设方案得到我们想要的模型结构。
###目录:###
##为什么要预设方案?##
在实际的开发中,我们需要修改模型的内容,但都需要手动去做,有没有什么方法可以在模型转化的时候就设定好了呢?答案是有,那就是通过预设方案设定好属性列或者字段。
比如,数据库有一个book表,我们要根据book转换成一个模型,能够满足我们实际项目增删查改的功能。那么,单单靠一个原始的book模型是没法做到的,我们需要对这个模型添加一些属性和列做为标识。 这时,如果自己DIY模型,就要花一定的时间,时间就是金钱。如果通过预设的话,就能把想要的属性、列和字段直接生成。
数据库中有一张表
通过默认方式得到的模型,缺少我们需要的内容。
##如何配置预设方案##
根据业务需求,我们需要修改和新增模型的内容
- 修改
- type列:字段的类型,比如String, Integer等。
- fullType列:字段的完整类型,比如java.lang.String, java.lang.Integer, java.util.Date
- 新增
- title属性:标题
- fieldName列:字段的名称
- controlType列:控件的类型,有text、select和date
- isQuery列:字段是否查询
其中type和fullType是用来生成字段的类型和完整类型
title、fieldName、controlType是新增时候的标识
isQuery是字段是否要查询的标识
模型页-->预设方案-->新预设-->输入预设名init
预设属性有2种取值方式,一种是填写预设值,另一种是预设转换。
双击或者按回车编辑
也可以点击右侧编辑图标
不同的填入的值会转成不同的java类型,使用ognl转型:
- true或者false:转成java的Boolean类型。
- {"e1","e2","e3"}:转成java的List类型。
- #{"key1":"value1","key2":"value2"}:转成java的Map类型。
- 其它字符串或者null:转成java的String类型。
转成模型后
预设转换可以指定一个转换器,它能够把指定的属性值转换成新的值。
此处选择name,转换器选择headUpperCamel,它能把name的值转成头字母大写的驼峰式格式。
比如数据库的表名叫book_store,它会赋予name,而通过转型后值BookStore会赋予title。
我们在数据库中的表名为book,转成模型后,它会新建title属性并赋值Book。
关于转换器和映射更详细的内容请点击:映射和转换
对列的预设分成2部分
- 已存在的列预设
- 新建列的预设
包括name,type,fullType:
- name:默认值和id一致,id不可修改,name是可以修改的,比如表的字段名为regist_time,id的值也为regist_time,但是name可以改成registTime。
- type:字段类型,默认为null,可自定义。如Stirng、int、Integer。但我们可以通过预设映射指定类型。
- fullType:字段完整类型,默认为null,可自定义。如java.lang.String、java.util.Date。我们也可以通过映射预设映射指定类型。
同预设属性,预设列也有2种取值方式,一种是填写预设值,另一种是预设转换。
预设值就是填入固定值,此处填入myName。
则每个字段同一列都会生成同一个值。
但多数情况下,name,type,fullType这三个属性都是通过其它列转换而来
我们的转换方案:
- name: id --> 转换器headLowerCamel,id的值和表的字段一样,转成头字母小写的驼峰格式,如regist_time转成registTime。
- type: jdbcType --> 映射type,jdbcType是jdbc统一标准的类型,我们通过jdbcType类型映射到实际的类型。
- fullType: jdbcType --> 映射fullType,完整的类型。
转换器headLowerCamel,将输入的值value转成头字母小写的驼峰式格式
映射type,jdbcType映射到实际开发语言的类型。
映射fullType,jdbcType映射到实际开发语言的完整类型。
关于转换器headLowerCamel、映射type、fullType更详细的内容请点击:映射和转换
name,选择预设转换,来自列id,转换器headLowerCamel。
type,选择预设转换,来自列jdbcType,使用映射type。
fullType,选择预设转换,来自列jdbcType,使用映射fullType。
选择预设方案init模型转换。
运行结果,按照我们的需求进行了转换。当然,也可以通过按钮手动转换,详细的内容请点击:映射和转换
同已存在的列预设,
我们的转换方案:
- fieldName: id --> 转换器headLowerCamel,id的值和表的字段一样,转成头字母小写的驼峰格式,如regist_time转成registTime。
- controlType: 设置固定选项值,text(文本框),select(下拉框),date(日期控件)
- isQuery: 设置Boolean固定值,默认值为true。
fieldName,选择预设转换,来自列id,转换器headLowerCamel。
controlType,选择预设值,类型Select,设置三个值text、select、date,默认为text。
isQuery,选择预设值,类型Boolean,默认值true
运行结果,按照我们的需求进行了转换。当然,也可以通过按钮手动转换,详细的内容请点击:映射和转换
点击任意格可以编辑,可以发现, controlType的列可以选三个选项和null; isQuery的列可以选择true、false和null。
新建一个字段price
生成新的字段。