这次我尝试写一个原创的项目 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项目的经验分享一:简单介绍的更多相关文章

  1. 关于写SpringBoot+Mybatisplus+Shiro项目的经验分享四:部署到阿里云

    框架: SpringBoot+Mybatisplus+Shiro 简单介绍:关于写SpringBoot+Mybatisplus+Shiro项目的经验分享一:简单介绍 阿里云开放必要端口,mysql与t ...

  2. 关于写SpringBoot+Mybatisplus+Shiro项目的经验分享三:问题2

    框架: SpringBoot+Mybatisplus+Shiro 简单介绍:关于写SpringBoot+Mybatisplus+Shiro项目的经验分享一:简单介绍 搜索框是该项目重要的一环,由于涉及 ...

  3. 关于写SpringBoot+Mybatisplus+Shiro项目的经验分享二:问题1

    框架: SpringBoot+Mybatisplus+Shiro 简单介绍:关于写SpringBoot+Mybatisplus+Shiro项目的经验分享一:简单介绍 添加时,如果失败,不能正确跳转 c ...

  4. spring-boot+mybatisPlus+shiro的集成demo 我用了5天

    spring-boot + mybatis-plus + shiro 的集成demo我用了五天 关于shiro框架,我还是从飞机哪里听来的,就连小贱都知道,可我母鸡啊.简单百度了下,结论很好上手,比s ...

  5. Visual Studio 2015开发Qt项目实战经验分享(附项目示例源码)

    Visual Studio 2015开发Qt项目实战经验分享(附项目示例源码)    转 https://blog.csdn.net/lhl1124281072/article/details/800 ...

  6. IDEA上创建 Maven SpringBoot+mybatisplus+thymeleaf 项目

    概述 在WEB领域,Java也是在不断的探索和改进,从开始的JSP--->Struts1--->Struts2+Spring--->Spring MVC--->SpringBo ...

  7. Hadoop源码学习笔记之NameNode启动场景流程一:源码环境搭建和项目模块及NameNode结构简单介绍

    最近在跟着一个大佬学习Hadoop底层源码及架构等知识点,觉得有必要记录下来这个学习过程.想到了这个废弃已久的blog账号,决定重新开始更新. 主要分以下几步来进行源码学习: 一.搭建源码阅读环境二. ...

  8. 自己动手写处理器之第二阶段(2)——Verilog HDL简单介绍

    将陆续上传本人写的新书<自己动手写处理器>(尚未出版),今天是第六篇.我尽量每周四篇 2.3 Verilog HDL简单介绍 本书实现的OpenMIPS处理器是使用Verilog HDL编 ...

  9. springboot+mybatis+shiro项目中使用shiro实现登录用户的权限验证。权限表、角色表、用户表。从不同的表中收集用户的权限、

    要实现的目的:根据登录用户.查询出当前用户具有的所有权限.然后登录系统后.根据查询到的权限信息进行不同的操作. 以下的代码是在搭好的框架之下进行的编码. 文章目录 核心实现部分. 第一种是将用户表和角 ...

随机推荐

  1. CSP2021 翻车记

    DAY - INF 日常模拟赛被吊打,不知道为啥总是出一些小问题导致正解gg,成绩的话也就是中游吧,不过方差不小 DAY - 2 感冒了,头疼得很,签到题甚至也签到失败了,烦得很 DAY -1 全真体 ...

  2. Python课程笔记(三)

    1.python定义类.创建对象 class Myclass: # 定义Myclass类 def sum(self,x,y): self.x = x self.y = y return self.x+ ...

  3. vcs命令

    转载:VCS_weixin_34256074的博客-CSDN博客 timing check相关的: +notimingcheck命令,可以用在compile时,也可以用在run time的时候, 都是 ...

  4. Java之父 James Gosling 发表博文 《Too Soon》纪念乔布斯。

    几个礼拜前,我们还在讨论乔布斯的辞职.虽然我们都知道这意味着什么,但是我没有想到一切来的如此之快.已经有很多关于这件事情的文章了,特别是"经济学人"的这篇文章. 乔布斯是一个很独特 ...

  5. Xtrabackup 全量备份脚本

    #!/bin/bash #备份文件的名字为当前主机的IP地址+tar.gz,例如172.16.103.1.tar.gz,且每次备份成功之后都会清空本地的备份目录. #相关目录 mkdir -p /xt ...

  6. You (oracle) are not allowed to access to (crontab) because of pam configura

    用oracle用户添加备份计划任务,crontab -e,提示:You (oracle) are not allowed to access to (crontab) because of pam c ...

  7. 不破不立,祝贺EDG夺得S11冠军。这一夜,我看到太多Flag成真

      在昨晚11月6号夜进行的2021英雄联盟S11总决赛中,中国战队EDG夺冠!全国各地高校的男生宿舍像过年一般庆祝夺冠,高呼:EDG世界冠军!   前三局1:2的劣势下,第四局十分胶着,最终EDG顽 ...

  8. Robot Framework操作MySQL数据库

    1.安装databaselibrary.pymysql 通过cmd命令执行:pip install robotframework-databaselibrary cmd命令执行:pip install ...

  9. 图文详解 Java 字节码,让你秒懂全过程

    原文地址:https://blog.csdn.net/AliceSmith1/article/details/80051153 即便对那些有经验的Java开发人员来说,阅读已编译的Java字节码也很乏 ...

  10. Django笔记&教程 0-2 框架版本与相关工具

    Django 自学笔记兼学习教程第0章第2节-- 框架版本与相关工具 点击查看教程总目录 1 版本 python: 3.6.5 Django: 2.2.11 (有些地方我也会对比下各种版本的区别) 安 ...