关于写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实现登录用户的权限验证。权限表、角色表、用户表。从不同的表中收集用户的权限、
要实现的目的:根据登录用户.查询出当前用户具有的所有权限.然后登录系统后.根据查询到的权限信息进行不同的操作. 以下的代码是在搭好的框架之下进行的编码. 文章目录 核心实现部分. 第一种是将用户表和角 ...
随机推荐
- linux wifi热点服务脚本
最近有关wifi热点的驱动,启动参数都调试完了,验证可以连接传输数据. 首先要在系统启动脚本中插入wifi驱动,配置wlan0的ip insmod /system/vendor/modules/818 ...
- hdu 2189 来生一起走(DP)
题意: 有N个志愿者.指挥部需要将他们分成若干组,但要求每个组的人数必须为素数.问不同的方案总共有多少.(N个志愿者无差别,即每个组的惟一标识是:人数) 思路: 假设N个人可分为K组,将这K组的人数从 ...
- linux 内核源代码情景分析——越界访问
页式存储管理机制通过页面目录和页面表将每个线性地址转换成物理地址,当遇到下面几种情况就会使CPU产生一次缺页中断,从而执行预定的页面异常处理程序: ① 相应的页面目录或页表项为空,也就是该线性地址与物 ...
- WLAN-无线路由综合应用
一.实验目的 掌握综合应用的配置 二.实验仪器设备及软件 实验仪器设备:路由器.三层交换机.3台二层交换机.AC.3台AP 软件:ensp 三.实验原理 四.实验内容与步骤 AC配置: [AC ...
- Java实体映射工具MapStruct使用详解
1.序 通常在后端开发中经常不直接返回实体Entity类,经过处理转换返回前端,前端提交过来的对象也需要经过转换Entity实体才做存储:通常使用的BeanUtils.copyProperties方法 ...
- 『学了就忘』Linux基础命令 — 26、帮助命令
目录 1.man命令 (1)man命令的快捷键 (2)man命令的帮助级别(了解即可) (3)man命令的使用 2.info命令 3.help命令 4.--help选项 1.man命令 man是最常见 ...
- CentOS服务器的网络配置与部署
1.系统安装与软件安装 1.1选择CentOs7.9release版本用作所研发系统部署服务器,官网以及所选择镜像为地址为:http://ftp.sjtu.edu.cn/centos/7.9.2009 ...
- [源码解析] PyTorch 分布式(3) ----- DataParallel(下)
[源码解析] PyTorch 分布式(3) ----- DataParallel(下) 目录 [源码解析] PyTorch 分布式(3) ----- DataParallel(下) 0x00 摘要 0 ...
- BAT面试必问细节:关于Netty中的ByteBuf详解
在Netty中,还有另外一个比较常见的对象ByteBuf,它其实等同于Java Nio中的ByteBuffer,但是ByteBuf对Nio中的ByteBuffer的功能做了很作增强,下面我们来简单了解 ...
- mybatis中批量插入的两种方式(高效插入)
MyBatis简介 MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装.MyBatis可以使用 ...