学生信息管理系统

学生信息管理系统

包含

年级信息管理增删改查及导出

课程信息管理增删改查及导出

班级信息管理增删改查及导出

教师信息管理增删改查及导出

学生信息管理增删改查及导出

班级可以选择课程和老师

老师也可以选择所教的班级和课程

代码简洁易读

1.软件安装

新建数据库

导入studentinfo-init.sql

配置jdbc.properties

启动tomcat

2.项目特点**

纯Spring MVC技术栈,无DTO,没有鸡肋的interface,impl。

扩展SpringSecurity权限控制,精细到任意请求的权限控制。

资源无需手动录入数据库,根据注解自动生成菜单和权限列表,只需选择即可。

演示效果图: 

部分代码:

  @QClass(name = "年级")

  @Entity

  @Table(name = "b_grade")

  public class Grade extends BaseEntity {

      @QField(name = "名称", actions = {Action.edit, Action.show, Action.query}, queryType = QFieldQueryType.like, nullable = false)

      private String name; //名称


      @OneToMany(mappedBy = "grade")

      @JsonBackReference

      private Set<Clazz> clazzes; //班级


      @OneToMany(mappedBy = "grade")

      @JsonBackReference

      private Set<Course> courses; //课程

  }


  @QClass(name = "课程")

  @Entity

  @Table(name = "b_course")

  public class Course extends BaseEntity {

      @QField(name = "名称", actions = {Action.edit, Action.show, Action.query}, queryType = QFieldQueryType.like)

      private String name; //名称


      @ManyToOne

      @JoinColumn(name = "grade_id")

      @JsonManagedReference

      private Grade grade; //所属年级


      @ManyToMany(cascade = {CascadeType.REMOVE}, mappedBy = "courses")

      @JsonBackReference

      private Set<Clazz> clazzes;


      @ManyToMany(cascade = {CascadeType.REMOVE})

      @JoinTable(name = "b_course_teacher", joinColumns = {@JoinColumn(name = "courses_id")}, inverseJoinColumns = {@JoinColumn(name = "teachers_id")})

      @JsonManagedReference

      private Set<Teacher> teachers;


      @ManyToMany(cascade = {CascadeType.REMOVE})

      @JoinTable(name = "b_course_student")

      @JsonManagedReference

      private Set<Student> students;

  }

联系方式:QQ 2644328654(月牙儿),支持定制开发 

源码获取 http://mutou888.com/pay/source.html

基于javacat极简开发框架 http://www.mutou888.com/javacat/index.html

现在的快速开发脚手架铺天盖地,功能越来越复杂,上手难度越来越高,基本上都是功能的堆积,代码臃肿,真正能在开发效率上有所改进的少之又少, 使用的人茫然无措,只是当做一个黑盒子来用,代码的可读性,可控性都很差, 但是很多人其实需要这样的开发框架,代码简洁,但是基本的菜单管理,角色管理,用户管理,权限控制都有,代码清晰,自己写的代码在自己的控制范围之内, 简而精致,是我们不懈的追求,当别人堆积功能堆积代码的时候,我们逆流而上,重构精简现有的功能,从根本上提高开发的效率和代码的可读性,可控性。

系统亮点:

精细的菜单角色权限控制管理。

1.角色精细配置:所有的角色由初始的系统管理员创建,每个后创建的角色,只能选择自己角色内的菜单和资源进行分配。

比如一个公司管理员,他具有公司管理的菜单和资源,那么他在新建其他角色的时候只能从自己所有的菜单和资源中组合产生新的角色。

2.数据权限控制:部分管理员只能看到部门的数据,个人只能看到个人的数据,再分配角色的数据权限只能在当前角色可分配的范围之内

如:店铺管理员的再分配角色的数据权限,最大的可见数据范围应该是本店铺,不能超出。

3.权限可配置:角色能够对最小粒度的资源单位进行有效的管理,比如按钮或者请求或者单纯的逻辑请求进行管理,精确配置每个角色能够看到的按钮。

一般系统的做法是手动添加每个需要控制的url到数据库,然后配置到数据库,这样不仅容易出错,而且费时费力。 改进:直接通过扫描Controller的方式获取所有需要控制的资源,这样就避免了手动添加资源到数据库的烦恼。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 授权协议: 允许对本文提供的任何信息、资料进行使用、学习、修改等,但请注明引用出处。(白tom: qq100525...
    白tom阅读 8,674评论 0 2
  • 前言:写这篇文章的目的: 为了以后复习方便,当你回头看自己的代码的时候不至于想不起你写下这段代码的思路; 慢慢锻炼...
    极客汪阅读 46,120评论 57 59
  • 感赏彩羽的作业能积极主动完成; 感赏彩羽与我打电话能温和的与我说话; 感赏彩羽对画画有兴趣; 感赏彩羽对羽毛球有兴...
    无心言欢阅读 122评论 0 0
  • 今天我们公司搬家不休息, 早上我早早走了,6点才回家 ,所以今天晚上的日记让小家伙自己写。 今天我早...
    耿浩然妈妈阅读 223评论 0 2
  • 面包的滋味 小时候,由于家里穷,想吃上一块面包是件不容易的事。但看见别的小孩吃,心里直痒痒,总希望那天自己也能吃上...
    随和的心语阅读 467评论 0 0

友情链接更多精彩内容