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

预设项和它生成内容的关系

预设属性Property

预设属性有2种取值方式,一种是填写预设值,另一种是预设转换。

1.预设值:输入固定的内容

双击或者按回车编辑

也可以点击右侧编辑图标

不同的填入的值会转成不同的java类型,使用ognl转型:

  • true或者false:转成java的Boolean类型。
  • {"e1","e2","e3"}:转成java的List类型。
  • #{"key1":"value1","key2":"value2"}:转成java的Map类型。
  • 其它字符串或者null:转成java的String类型。

转成模型后

2.预设转换

预设转换可以指定一个转换器,它能够把指定的属性值转换成新的值。

此处选择name,转换器选择headUpperCamel,它能把name的值转成头字母大写的驼峰式格式。
比如数据库的表名叫book_store,它会赋予name,而通过转型后值BookStore会赋予title。

我们在数据库中的表名为book,转成模型后,它会新建title属性并赋值Book。

关于转换器和映射更详细的内容请点击:映射和转换

预设列Column

对列的预设分成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。

预设字段Field

新建一个字段price

生成新的字段。

⚠️ **GitHub.com Fallback** ⚠️