model db - jmr-source/doc GitHub Wiki
###目录:###
##前言##
Jmr可以通过读取数据库中的表和视图建立对应的模型。
整个读取过程只需做2步: 1.配置数据库连接,并连接数据库。 2.读取表或者视图转换成模型。
##新建模型组##
首先,打开jmr文件,切换模型页,点击菜单上的新建按钮,或者在模型列表中右键,新建组。
输入组名,例如:model。
新建完成后,右边副页出现数据来源配置,目前支持从数据库、java类、xml文件生成模型。
##设置数据库连接##
在模型页中,小伙伴们可以记录数据库的信息,并通过它查询数据库中的表和视图,转化成模型。
选中任意的模型组,在从属页面中,选择“数据库”,右键菜单或者右侧菜单“新建连接”。
在数据库配置页面中,配置数据库连接信息。
需要注意几点: 1.可选的数据库包含了大部分主流数据库,如果数据库不再列表里,请选择Other。 2.一般数据库厂家都会提供jdbc驱动包,正常只有一个,但sqlserver2000包含3个,请都加入。 3.导入的驱动包建议放在项目路径下。 4.根据jdbc的协议,classname可能有多个,加入完驱动包后,会自动列出classname,请选择合适的使用。 5.建议测试下数据库连接,如果有错误会提示,错误一般是配置信息错误,数据库未安装或者服务没启动。
配置完毕后,右键菜单或者右侧菜单点击“连接”。
连接成功后,会显示表和视图的结构;如果数据库变动了,右键菜单或者右侧菜单点击“刷新”。
##转换模型##
模型是jmr的核心资产,它代表了数据源的信息,我们把它传递给模板生成代码。 我们现在开始就要把表和视图的信息,转换成jmr可以理解和扩展的模型。
选中表或者视图,右键菜单-->模型转换-->默认转换。
生成了模型book,这个模型是表或者视图的结构信息。 默认转换生成的是基础模型,我们一般会在此基础上扩展模型。
也可以通过预设方案来转换模型,预设方案可以预先设置好需要扩展的结构。 在转换时除了默认结构的转换,也会同时进行扩展结构的转换。
关于预设方案请阅读:
预设方案
使用预设方案生成模型
数据库中有2张表,它们的关系如下:
book: id是主键,包括name,type,regist_time等字段。 chapter: id是主键,包括name和book_id等字段,其中book_id是外键,指向book的id。
转换的结构包含4组信息:
- 默认:默认的信息。
- 类型:字段的类型信息。
- 数据库:数据库的通用信息。
- 表:数据库的表信息。
点击 打开每组的内容; 关于数据库模型的结构,请参考:结构 - 数据库。
chapter表的book_id的外键是book表的id。 可以按到book_id的isFk是true,fkEntityName关联的表是book,fkFieldName是id。
数据库中有一个视图,它是book表和chapter表的关联查询。
我们把视图转换成模型。
那么,它查询得到的结构是包含2个字段name和chapter_name的模型。
转换的结构包含3组信息:
- 默认:默认的信息。
- 类型:字段的类型信息。
- 数据库:数据库的通用信息。
不包含的信息,表信息,因为视图没有表的信息。 表信息包括:
- isPk:是否为主键。
- isFk:是否为外键。
- fkEntityName:外键对应的模型名
- fkFieldName:外键对应的字段名
小伙伴们在转换模型后,还会手动修改自己的模型内容,以符合自己的业务需求。 预设可以帮大家预先设置好属性、列和字段,省去了大量手动修改模型的时间。
关于预设方案的使用,详细请参考下面内容
比如在实际项目开发中,根据业务需求,我们需要修改和新增模型的内容
- 修改
- name列,字段的名称
- type列:字段的类型,比如String, Integer等。
- fullType列:字段的完整类型,比如java.lang.String, java.lang.Integer, java.util.Date
- 新增
- title属性:标题
- fieldName列:页面字段的名称
- controlType列:控件的类型,有text、select和date
- isQuery列:字段是否查询
我们就可以设置预设
只要在转换中,选择预设方案,init模型转换。