关于写SpringBoot+Mybatisplus+Shiro项目的经验分享一:简单介绍
这次我尝试写一个原创的项目 the_game
框架选择: SpringBoot+Mybatisplus+Shiro
首先是简单的介绍(素材灵感来自英雄联盟)
5个关键的表:
admin(管理员):

lol(英雄):

lol_forces(势力):

lol_occupation(职业):

lol_routes(分路):

其中英雄表中的 force_id 为int类型,必须通过查找 lol_forces 才能得到具体势力名
occupation_one、occupation_two 为int类型,必须通过查找 lol_occupation 才能得到具体职业名
route_one、route_two 为int类型,必须通过查找 lol_routes 才能得到具体分路名
Gender(性别):使用枚举的方式
因为使用了MybatisPlus,所以减轻了很多写Sql的负担,并且增加了 逻辑删除, 主键策略, 枚举等工具
实体类(都使用了Lombok):
LoL
package com.zy.entity.lol; import com.baomidou.mybatisplus.annotation.*;
import com.zy.enums.GenderEnum;
import lombok.Data; import java.util.Date; @Data
@TableName(value = "lol")
/**
* 英雄联盟实体类
*/
public class Lol { //英雄编号,主键
//采用手动赋值方式
@TableId(type = IdType.INPUT)
private Integer hId; //英雄称号
@TableField(value = "designation")
private String designation; //英雄名
@TableField(value = "hero_name")
private String heroName; //性别,采用枚举的方式
@TableField(value = "gender")
//private Integer gender;
private GenderEnum gender; //势力编号,可以查询forces表得到
@TableField(value = "force_id")
private Integer forceId; //主要职业编号,可以查询forces表得到
@TableField(value = "occupation_one")
private Integer occupationOne; //次要职业编号,可以查询forces表得到
@TableField(value = "occupation_two")
private Integer occupationTwo; //推荐分路一,可以查询routes表得到
@TableField(value = "route_one")
private Integer routeOne; //推荐分路二,可以查询routes表得到
@TableField(value = "route_two")
private Integer routeTwo; //逻辑删除
@TableLogic
private Integer deleted; //创建时间
@TableField(value = "create_time",fill = FieldFill.INSERT)
private Date createTime; //更新时间
@TableField(value = "update_time",fill = FieldFill.INSERT_UPDATE)
private Date updateTime; }
lolForces:
@Data
@TableName(value = "lol_forces")
/**
* lol的势力实体类
*/
public class LolForces { //势力编号,主键
//采用手动赋值方式
@TableId(type = IdType.INPUT)
private Integer fId; //势力名
@TableField(value = "f_name")
private String fName; }
LolOccupation:
@Data
@TableName(value = "lol_occupation")
/**
* lol的职业实体类
*/
public class LolOccupation { //职业编号,主键
//采用默认方式
@TableId
private Integer hcId; //职业名(英文)
@TableField(value = "name_us")
private String nameUs; //职业名(中文)
@TableField(value = "name_cn")
private String nameCn; }
LolRoutes:
@Data
@TableName(value = "lol_routes")
/**
* lol的分路实体类
*/
public class LolRoutes { //分路编号,主键
//采用手动赋值方式
@TableId(type = IdType.INPUT)
private Integer rId; //分路名
@TableField(value = "route")
private String route;
}
GenderEnum枚举
package com.zy.enums;
import com.baomidou.mybatisplus.annotation.EnumValue;
public enum GenderEnum {
男(0,"男"),
女(1,"女");
GenderEnum(Integer code, String msg) {
this.code = code;
this.msg = msg;
}
public Integer getCode() {
return code;
}
public String getMsg() {
return msg;
}
@EnumValue
private Integer code;
private String msg;
}
还需要注意的是,因为前端显示数据时,像是势力、职业这种属性,不能用数字,而需要名字
因此我的增加了VO(value object)用于传输,其封装的属性都是前端页面需要的
LolVo
@Data
/**
* 传输的实体类
*/
public class LolVo { //英雄编号
private Integer hId;
//英雄称号
private String designation;
//英雄名
private String heroName;
//性别
private GenderEnum gender;
//势力名
private String force;
//职业名(主)
private String occupationOne;
//职业名(次)
private String occupationTwo;
//推荐分路名一
private String routeOne;
//推荐分路名二
private String routeTwo; }
管理lol表 是此项目的核心,其中admin(管理员)拥有CRUD的权限,而未登录的游客只可以进行查找
在呈现数据时,采用分页的方式,并且页面通过session判断是否登录,从而呈现不同的按钮, 比如增删改的按钮游客不可见
效果初览(游客视角):

关于写SpringBoot+Mybatisplus+Shiro项目的经验分享一:简单介绍的更多相关文章
- 关于写SpringBoot+Mybatisplus+Shiro项目的经验分享四:部署到阿里云
框架: SpringBoot+Mybatisplus+Shiro 简单介绍:关于写SpringBoot+Mybatisplus+Shiro项目的经验分享一:简单介绍 阿里云开放必要端口,mysql与t ...
- 关于写SpringBoot+Mybatisplus+Shiro项目的经验分享三:问题2
框架: SpringBoot+Mybatisplus+Shiro 简单介绍:关于写SpringBoot+Mybatisplus+Shiro项目的经验分享一:简单介绍 搜索框是该项目重要的一环,由于涉及 ...
- 关于写SpringBoot+Mybatisplus+Shiro项目的经验分享二:问题1
框架: SpringBoot+Mybatisplus+Shiro 简单介绍:关于写SpringBoot+Mybatisplus+Shiro项目的经验分享一:简单介绍 添加时,如果失败,不能正确跳转 c ...
- spring-boot+mybatisPlus+shiro的集成demo 我用了5天
spring-boot + mybatis-plus + shiro 的集成demo我用了五天 关于shiro框架,我还是从飞机哪里听来的,就连小贱都知道,可我母鸡啊.简单百度了下,结论很好上手,比s ...
- Visual Studio 2015开发Qt项目实战经验分享(附项目示例源码)
Visual Studio 2015开发Qt项目实战经验分享(附项目示例源码) 转 https://blog.csdn.net/lhl1124281072/article/details/800 ...
- IDEA上创建 Maven SpringBoot+mybatisplus+thymeleaf 项目
概述 在WEB领域,Java也是在不断的探索和改进,从开始的JSP--->Struts1--->Struts2+Spring--->Spring MVC--->SpringBo ...
- Hadoop源码学习笔记之NameNode启动场景流程一:源码环境搭建和项目模块及NameNode结构简单介绍
最近在跟着一个大佬学习Hadoop底层源码及架构等知识点,觉得有必要记录下来这个学习过程.想到了这个废弃已久的blog账号,决定重新开始更新. 主要分以下几步来进行源码学习: 一.搭建源码阅读环境二. ...
- 自己动手写处理器之第二阶段(2)——Verilog HDL简单介绍
将陆续上传本人写的新书<自己动手写处理器>(尚未出版),今天是第六篇.我尽量每周四篇 2.3 Verilog HDL简单介绍 本书实现的OpenMIPS处理器是使用Verilog HDL编 ...
- springboot+mybatis+shiro项目中使用shiro实现登录用户的权限验证。权限表、角色表、用户表。从不同的表中收集用户的权限、
要实现的目的:根据登录用户.查询出当前用户具有的所有权限.然后登录系统后.根据查询到的权限信息进行不同的操作. 以下的代码是在搭好的框架之下进行的编码. 文章目录 核心实现部分. 第一种是将用户表和角 ...
随机推荐
- 攻防世界 杂项13.can_has_stdio?
打开发现是由trainfuck编码组成的小星星阵容,果断交给解密网站进行解密, 解密网站:http://ctf.ssleye.com/brain.html flag:flag{esolangs_for ...
- linux exit 和 _exit的区别
今天仔细看了一下exit和_exit这两个函数的区别,实际上exit也是调用了_exit退出函数的,只不过在调用_exit之前,exit还进行了一些多余的工作,也正是因为这样,相比起来exit就没有那 ...
- 在c中使用正则表达式
今天学习编译原理的时候,用c写一个简易的文法识别器实验遇到了一个问题:要用正则表达式去识别正则文法里面的A->ω,A->Bω, 其中ω属于T的正闭包,也就是说我们对正则文法的产生式进行抽象 ...
- linux 内核源代码情景分析——Intel X86 CPU 系列的寻址方式
当我们说一个CPU是"16位"或"32"位时,指的是处理器中"算数逻辑单元"(ALU)的宽度.数据总线通常与ALU具有相同的宽度.当Inte ...
- (1)Zookeeper在linux环境中搭建集群
1.简介 ZooKeeper是Apache软件基金会的一个软件项目,它为大型分布式计算提供开源的分布式配置服务.同步服务和命名注册.ZooKeeper的架构通过冗余服务实现高可用性.Zookeeper ...
- Go语言并发模型 G源码分析
Go 的线程实现模型,有三个核心的元素 M.P.G,它们共同支撑起了这个线程模型的框架.其中,G 是 goroutine 的缩写,通常称为 "协程".关于协程.线程和进程三者的异同 ...
- (数据科学学习手札130)利用geopandas快捷绘制在线地图
本文示例代码及文件已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes 1 简介 在上一篇文章中,我为大家介绍了不久前发布的 ...
- v-html | 数据内容包含元素标签或者样式
问题 如果我们展示的数据包含元素标签或者样式,我们想展示标签或样式所定义的属性作用,该怎么进行渲染 插值表达式{{}}和v-text指令被直接解析为了字符串元素. <body> <d ...
- uni-app app端设置全屏背景色
设置page:{样式},博主调试的时候在app端不起作用,设置配置文件的backgroundColor也没有用,所以博主就使用了一个稍微比较偏的办法解决了,没有用获取设备信息的api来实现 具体操作就 ...
- SpringBoot 整合 Docker
最近备忘录新加的东西倒是挺多的,但到了新环境水土不服没动力去整理笔记 1. Demo Project 首先准备一个简单的项目,用来部署到 Docker 主机上,并且能验证该项目是否成功运行 1.1 接 ...