【Java】若依(ruoyi)——5.代码生成
参考地址:http://doc.ruoyi.vip/ruoyi/document/htsc.html#%E4%BB%A3%E7%A0%81%E7%94%9F%E6%88%90
仔细关注,发现若依真的太好用了。主要是使用的人数众多,文档齐全。而且里面的技术齐全,就算不使用该框架,也可以以此为例,学习学习。
这里,最有效的功能算是代码生成了,(这里使用的是前后端未分离的版本)。
具体步骤如下:
1. 创建对应的数据库
2. 修改默认配置,确定生成目录(不是每次都必须的)
3. 代码生成导入对应的表
4.下载代码,导入到对应的位置
表单类型包含:单表结构、树表结构、主子表结构。我们分表使用3中表结构生成代码。
单表结构
创建对应的数据库
若依的系统数据库中,创建学生信息表。
1 drop table if exists sys_student; 2 create table sys_student ( 3 student_id int(11) auto_increment comment '编号', 4 student_name varchar(30) default '' comment '学生名称', 5 student_age int(3) default null comment '年龄', 6 student_hobby varchar(30) default '' comment '爱好(0代码 1音乐 2电影)', 7 student_sex char(1) default '0' comment '性别(0男 1女 2未知)', 8 student_status char(1) default '0' comment '状态(0正常 1停用)', 9 student_birthday datetime comment '生日', 10 primary key (student_id) 11 ) engine=innodb auto_increment=1 comment = '学生信息表';
修改默认配置,确定生成目录(不是每次都必须的)
多模块ruoyi-generator
中的resources
目录下的generator.yml
,可以自己根据实际情况调整默认配置。
代码生成导入对应的表
运行若依,首页菜单栏【系统工具】→【代码生成】。点击页面的【导入】按钮,选择表(sys_student)。
点击【编辑】。
代码生成支持编辑、预览、同步
预览:对生成的代码提前预览,防止出现一些不符合预期的情况。
同步:对原表的字段进行同步,包括新增、删除、修改的字段处理。
修改:对生成的代码基本信息、字段信息、生成信息做一系列的调整。
另外多模块所有代码生成的相关业务逻辑代码在
ruoyi-generator
模块,不需要可以自行删除模块。
然后,可以修改“基本信息”、“字段信息”和“生成信息”。
下载代码,导入到对应的位置
点击【生成代码】,这时候下载了名为【ruoyi.zip】的文件,解压后,发现:【main】文件夹和一个sql文件。【main】文件包含了MVC三层的java源码和前端文件。在系统数据库sql文件执行后,可以在配置好的位置增加菜单。
查看sql文件,可知。增加了一个页面,并在该页面添加:查询、新增、修改、删除、导出按钮。
将【main】的代码放置合适的位置。例如,这里,【domain】、【mapper】、【services】层代码放在“system”模块对应的代码下,【controller】放在admin模块的对应java代码下。资源文件,放在模块“system”的“mapper”文件下,“templates”文件放在模块“admin”的资源文件下。
执行sql语句,编译并重启项目。可以看到,已经生成了需要的页面。
这里,是普通的具有:查询、添加、修改、删除和导出的页面了。
关于页面更详细的自定义方式,可以后续再研究。
树表结构
接下来,是树表结构。
drop table if exists sys_product; create table sys_product ( product_id bigint(20) not null auto_increment comment '产品id', parent_id bigint(20) default 0 comment '父产品id', product_name varchar(30) default '' comment '产品名称', order_num int(4) default 0 comment '显示顺序', status char(1) default '0' comment '产品状态(0正常 1停用)', primary key (product_id) ) engine=innodb auto_increment=1 comment = '产品表';
代码生成时,需要选择树表(其他步骤一致)
可以看到树表结构,运行结果如下:
主子表结构
-- ---------------------------- -- 客户表 -- ---------------------------- drop table if exists sys_customer; create table sys_customer ( customer_id bigint(20) not null auto_increment comment '客户id', customer_name varchar(30) default '' comment '客户姓名', phonenumber varchar(11) default '' comment '手机号码', sex varchar(20) default null comment '客户性别', birthday datetime comment '客户生日', remark varchar(500) default null comment '客户描述', primary key (customer_id) ) engine=innodb auto_increment=1 comment = '客户表'; -- ---------------------------- -- 商品表 -- ---------------------------- drop table if exists sys_goods; create table sys_goods ( goods_id bigint(20) not null auto_increment comment '商品id', customer_id bigint(20) not null comment '客户id', name varchar(30) default '' comment '商品名称', weight int(5) default null comment '商品重量', price decimal(6,2) default null comment '商品价格', date datetime comment '商品时间', type char(1) default null comment '商品种类', primary key (goods_id) ) engine=innodb auto_increment=1 comment = '商品表';
配置时,选择模板结构选择(主子表),其他步骤相似。
主子表页面如下: