一个基于SpringBoot+vue的学生信息管理系统详细设计_spring boot当框架该如何做系统

总结

我们总是喜欢瞻仰大厂的大神们,但实际上大神也不过凡人,与菜鸟程序员相比,也就多花了几分心思,如果你再不努力,差距也只会越来越大。实际上,作为程序员,丰富自己的知识储备,提升自己的知识深度和广度是很有必要的。

Mybatis源码解析

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

	//账号不存在、密码错误
	if(user == null || !user.getPassword().equals(new Sha256Hash(form.getPassword(), user.getSalt()).toHex())) {
		return R.error("账号或密码不正确");
	}

	//账号锁定
	if(user.getStatus() == 0){
		return R.error("账号已被锁定,请联系管理员");
	}

	//生成token,并保存到数据库
	R r = sysUserTokenService.createToken(user.getUserId());
	return r;
}


/\*\*

* 退出
*/
@PostMapping(“/sys/logout”)
public R logout() {
sysUserTokenService.logout(getUserId());
return R.ok();
}



**前端VUE+element表单:**




  dataFormSubmit () {
        this.$refs['dataForm'].validate((valid) => {
          if (valid) {
            this.$http({
              url: this.$http.adornUrl('/sys/login'),
              method: 'post',
              data: this.$http.adornData({
                'username': this.dataForm.userName,
                'password': this.dataForm.password,
                'uuid': this.dataForm.uuid,
                'captcha': this.dataForm.captcha
              })
            }).then(({data}) => {
              if (data && data.code === 0) {
                this.$cookie.set('token', data.token)
                this.$router.replace({ name: 'home' })
              } else {
                this.getCaptcha()
                this.$message.error(data.msg)
              }
            })
          }
        })
      },

权限控制:

 @Bean("shiroFilter")
    public ShiroFilterFactoryBean shiroFilter(SecurityManager securityManager) {
        ShiroFilterFactoryBean shiroFilter = new ShiroFilterFactoryBean();
        shiroFilter.setSecurityManager(securityManager);

        //oauth过滤
        Map<String, Filter> filters = new HashMap<>();
        filters.put("oauth2", new OAuth2Filter());
        shiroFilter.setFilters(filters);

        Map<String, String> filterMap = new LinkedHashMap<>();
        filterMap.put("/webjars/\*\*", "anon");
        filterMap.put("/druid/\*\*", "anon");
        filterMap.put("/app/\*\*", "anon");
        filterMap.put("/sys/login", "anon");
        filterMap.put("/swagger/\*\*", "anon");
        filterMap.put("/v2/api-docs", "anon");
        filterMap.put("/swagger-ui.html", "anon");
        filterMap.put("/swagger-resources/\*\*", "anon");
        filterMap.put("/captcha.jpg", "anon");
        filterMap.put("/aaa.txt", "anon");
        filterMap.put("/virtuel/\*\*", "anon");

        filterMap.put("/\*\*", "oauth2");
        shiroFilter.setFilterChainDefinitionMap(filterMap);

        return shiroFilter;
    }

数据库连接配置:

spring:
    datasource:
        type: com.alibaba.druid.pool.DruidDataSource
        druid:
            driver-class-name: com.mysql.cj.jdbc.Driver
            url: jdbc:mysql://localhost:3306/renren_students?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
            username: root
            password: 123456
            initial-size: 10
            max-active: 100
            min-idle: 10
            max-wait: 60000
            pool-prepared-statements: true
            max-pool-prepared-statement-per-connection-size: 20
            time-between-eviction-runs-millis: 60000
            min-evictable-idle-time-millis: 300000
            #Oracle需要打开注释
            #validation-query: SELECT 1 FROM DUAL
            test-while-idle: true
            test-on-borrow: false
            test-on-return: false
            stat-view-servlet:
                enabled: true
                url-pattern: /druid/\*
 #login-username: admin
 #login-password: admin
 filter:
 stat:
 log-slow-sql: true
 slow-sql-millis: 1000
 merge-sql: false
 wall:
 config:
 multi-statement-allow: true

数据库表结构文档

****数据库名:****renren_students

****文档版本:****V1.0.0

****文档描述:****数据库表设计描述

表cla

编号名称数据类型长度小数位允许空值主键默认值说明
1idint100NY
2namevarchar2550YN
3class_numvarchar2550YN
4user_numsvarchar2550YN

表course

编号名称数据类型长度小数位允许空值主键默认值说明
1idint100NY
2namevarchar2550YN
3teacher_numvarchar2550YN
4sk_timedatetime190YN
5sk_placevarchar2550YN
6weeks_numbervarchar2550YN
7kc_typevarchar2550YN
8facultyvarchar2550YN
9scorevarchar2550YN
10bzvarchar2550YN

表dj_news

编号名称数据类型长度小数位允许空值主键默认值说明
1idint100NY
2titlevarchar2550YN标题
3tyvarchar2550YN类型
4create_timedatetime190YN发布时间
5unitvarchar2550YN发布单位
6numvarchar2550YN发布编号
7contentmediumtext167772150YN主要内容
8create_byvarchar2550YN发布人
9bzvarchar2550YN备注信息
10kindvarchar2550YN种类(党建要闻 组织风采 )

表file

编号名称数据类型长度小数位允许空值主键默认值说明
1idint100NY
2pathvarchar2550YN
3file_namevarchar2550YN
4file_typevarchar2550YN
5classifyvarchar2550YN
6create_timedatetime190YN
7create_byvarchar2550YN

表inform

编号名称数据类型长度小数位允许空值主键默认值说明
1idint100NY
2titlevarchar2550YN
3contenttext655350YN
4create_timetimestamp190YNCURRENT_TIMESTAMP
5create_byvarchar2550YN
6bzvarchar2550YN

表my_course

编号名称数据类型长度小数位允许空值主键默认值说明
1idint100NY
2namevarchar2550YN
3teacher_numvarchar2550YN
4sk_timedatetime190YN
5sk_placevarchar2550YN
6weeks_numbervarchar2550YN
7kc_typevarchar2550YN
8facultyvarchar2550YN
9scorevarchar2550YN
10bzvarchar2550YN
11user_idint100YN
12user_namevarchar2550YN
13user_scorevarchar2550YN

表student

编号名称数据类型长度小数位允许空值主键默认值说明
1idint100NY
2namevarchar2550YN
3sexvarchar2550YN
4birth_datedatetime190YN
5ruxue_datedatetime190YN
6collegevarchar2550YN
7bzvarchar2550YN
8cla_namevarchar2550YN

表sys_captcha (系统验证码)

编号名称数据类型长度小数位允许空值主键默认值说明
1uuidchar360NYuuid
2codevarchar60NN验证码
3expire_timedatetime190YN过期时间

表sys_config (系统配置信息表)

编号名称数据类型长度小数位允许空值主键默认值说明
1idbigint200NY
2param_keyvarchar500YNkey
3param_valuevarchar20000YNvalue
4statustinyint40YN1状态   0:隐藏   1:显示
5remarkvarchar5000YN备注

表sys_dept (部门管理)

编号名称数据类型长度小数位允许空值主键默认值说明
1dept_idbigint200NY
2parent_idbigint200YN上级部门ID,一级部门为0
3namevarchar500YN部门名称
4order_numint100YN排序
5del_flagtinyint40YN0是否删除  -1:已删除  0:正常
6remarkvarchar2550YN

表sys_log (系统日志)

编号名称数据类型长度小数位允许空值主键默认值说明
1idbigint200NY
2usernamevarchar500YN用户名
3operationvarchar500YN用户操作
4methodvarchar2000YN请求方法
5paramsvarchar50000YN请求参数
6timebigint200NN执行时长(毫秒)
7ipvarchar640YNIP地址
8create_datedatetime190YN创建时间

表sys_menu (菜单管理)

编号名称数据类型长度小数位允许空值主键默认值说明
1menu_idbigint200NY
2parent_idbigint200YN父菜单ID,一级菜单为0
3namevarchar500YN菜单名称
4urlvarchar2000YN菜单URL
5permsvarchar5000YN授权(多个用逗号分隔,如:user:list,user:create)
6typeint100YN类型   0:目录   1:菜单   2:按钮
7iconvarchar500YN菜单图标
8order_numint100YN排序

表sys_oss (文件上传)

编号名称数据类型长度小数位允许空值主键默认值说明
1idbigint200NY
2urlvarchar2000YNURL地址
3create_datedatetime190YN创建时间

表sys_role (角色)

编号名称数据类型长度小数位允许空值主键默认值说明
1role_idbigint200NY
2role_namevarchar1000YN角色名称
3remarkvarchar1000YN备注
4create_user_idbigint200YN创建者ID
5create_timedatetime190YN创建时间
6dept_idint100YN

表sys_role_dept (角色与部门对应关系)

编号名称数据类型长度小数位允许空值主键默认值说明
1idbigint200NY
2role_idbigint200YN角色ID
3dept_idbigint200YN部门ID

表sys_role_menu (角色与菜单对应关系)

编号名称数据类型长度小数位允许空值主键默认值说明
1idbigint200NY
2role_idbigint200YN角色ID
3menu_idbigint200YN菜单ID

表sys_user (系统用户)

编号名称数据类型长度小数位允许空值主键默认值说明
1user_idbigint200NY
2usernamevarchar500NN用户名
3passwordvarchar1000YN密码
4saltvarchar200YN
5emailvarchar1000YN邮箱
6mobilevarchar1000YN手机号
7statustinyint40YN状态  0:禁用   1:正常
8create_user_idbigint200YN创建者ID
9create_timedatetime190YN创建时间
10dept_idint100YN
11stagevarchar2550YN
12parent_namevarchar2550YN部门名称

表sys_user_role (用户与角色对应关系)

编号名称数据类型长度小数位允许空值主键默认值说明
1idbigint200NY
2user_idbigint200YN用户ID
3role_idbigint200YN角色ID

表sys_user_token (系统用户Token)

编号名称数据类型长度小数位允许空值主键默认值说明
1user_idbigint200NY
2tokenvarchar1000NNtoken
3expire_timedatetime190YN过期时间

复习的面试资料

这些面试全部出自大厂面试真题和面试合集当中,小编已经为大家整理完毕(PDF版)

  • 第一部分:Java基础-中级-高级

image

  • 第二部分:开源框架(SSM:Spring+SpringMVC+MyBatis)

image

  • 第三部分:性能调优(JVM+MySQL+Tomcat)

image

  • 第四部分:分布式(限流:ZK+Nginx;缓存:Redis+MongoDB+Memcached;通讯:MQ+kafka)

image

  • 第五部分:微服务(SpringBoot+SpringCloud+Dubbo)

image

  • 第六部分:其他:并发编程+设计模式+数据结构与算法+网络

image

进阶学习笔记pdf

  • Java架构进阶之架构筑基篇(Java基础+并发编程+JVM+MySQL+Tomcat+网络+数据结构与算法

image

  • Java架构进阶之开源框架篇(设计模式+Spring+SpringMVC+MyBatis

image

image

image

  • Java架构进阶之分布式架构篇 (限流(ZK/Nginx)+缓存(Redis/MongoDB/Memcached)+通讯(MQ/kafka)

image

image

image

  • Java架构进阶之微服务架构篇(RPC+SpringBoot+SpringCloud+Dubbo+K8s)

image

image

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

构篇 (限流(ZK/Nginx)+缓存(Redis/MongoDB/Memcached)+通讯(MQ/kafka))**

[外链图片转存中…(img-IjTkLgKP-1715490495847)]

[外链图片转存中…(img-Oa9YQI1h-1715490495847)]

[外链图片转存中…(img-8NjaRkSW-1715490495847)]

  • Java架构进阶之微服务架构篇(RPC+SpringBoot+SpringCloud+Dubbo+K8s)

[外链图片转存中…(img-ubgL4WJt-1715490495848)]

[外链图片转存中…(img-rEIsBUAr-1715490495848)]

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

  • 10
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值