目录
目标
- 熟练搭建若依系统;
- 熟练生成MVC三层架构;
- 熟练创建账号并分配权限。
准备环境
搭建若依系统
第一步:创建好数据库,将下载好的压缩包解压,执行sql文件夹下的quartz.sql及ry_xxx.sql;
第二步:修改系统相关配置(数据库连接、端口等);
第三步:启动项目;
第四步:访问网页。
访问格式:ip:端口
账号/密码:admin/admin123
生成MVC三层架构
业务案例:根据学生姓名、生日、性别从MySQL数据库查询学生信息。
第一步:建立学生表student(注意:建议给字段加备注。);
CREATE TABLE `student` (
`id` bigint(10) NOT NULL AUTO_INCREMENT COMMENT '主键',
`student_name` varchar(32) NOT NULL COMMENT '姓名',
`sex` tinyint(1) NOT NULL COMMENT '性别',
`date_of_birth` date NOT NULL COMMENT '出生日期',
`reserve` int(1) DEFAULT NULL COMMENT '预留字段',
`reserve2` int(1) DEFAULT NULL COMMENT '预留字段2',
`reserve3` varchar(1) DEFAULT '' COMMENT '预留字段3',
`reserve4` varchar(1) DEFAULT '' COMMENT '预留字段4',
`reserve5` varchar(1) DEFAULT '' COMMENT '预留字段5',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
第二步:在左侧生成学生管理导航条,保存以后刷新页面,此时导航条会有学生管理这个目录;
第三步:选择要操作的表,我们这里选学生表;
字段信息:
插入:insert数据时,是否将该字段插入到表中;
编辑:update数据时,是否修改该字段;
列表:展示数据时是否展示该字段;
查询:展示数据时,该字段是否作为搜索条件;
字典类型:定义下拉框的下拉数据。
查询方式:勾选了查询才有效,即该字段以何种方式来搜索。比如:姓名选择like表示模糊查询、性别选择=表示等值查询、出生日期选择Between表示在两个日期之间进行范围查询。
第四步:解压压缩包,导入生成的代码;
第五步:重启项目并查看学生管理目录/学生信息表。
以下是可能会因为idea自身的格式校验而得问题:
org.thymeleaf.exceptions.TemplateInputException: Error resolving template异常;
找不到statementId的异常。
解决:
找到指定的前端文件或mapper.xml文件,全选内容剪切——>保存——>再粘贴。
第六步:注释并修改前端部分代码(略)
创建账号并分配权限
第一步:创建账号并分配权限;
第二步:创建用户并分配权限;
第三步:退出管理员账号并用新账号登录,如果有且仅出现指定的权限目录,则说明创建账号分配权限成功。
细节优化
时间格式化
方法一(修改后端实体类属性的格式):
/** 出生日期 */
//这里是导出excel的格式
@Excel(name = "出生日期", width = 30, dateFormat = "yyyy-MM-dd")
//这里是网页展示的格式
@JsonFormat(pattern = "yyyy-MM-dd")
private Date dateOfBirth;
方法二(修改前端页面列的格式):
{
field: 'dateOfBirth',
title: '出生日期',
formatter: function(value, row, index) {
//yyyy-MM-dd HH-mm-ss
return $.common.dateFormat(value, "yyyy-MM-dd");
}
}
色块包裹数据
效果:
方法:
{
field: 'sex',
title: '性别',
formatter: function(value, row, index) {
if (value == '0') {
return '<span class="badge badge-primary">男</span>';
} else if (value == '1') {
return '<span class="badge badge-danger">女</span>';
} else if (value == '2') {
return '<span class="badge badge-outline">未知</span>';
}
}
}
具体色块以下面的style.css文件为准: