Springboot+Thymeleaf+Mysql 实现增删改查学生管理系统

3.1登录注册功能

系统登录注册功能主要实现用户根据不同权限进行系统登录验证,当用户名或者密码不匹配以及用户名不存在时,系统会弹出错误提示,。具体的系统登录注册流程如图 3所示。

图3系统登录注册流程图

3.1.1登录功能

登录功能主要通过数据库JPA框架查询管理员的用户名和密码信息,与用户输入信息进行对比判断是否成功登录。通过JPA查询管理员的name和password,然后与用户输入的信息进去对比判断登录情况,(indexdao.findByNameAndPassword(username, password) != null),登录成功进入学生系统主页。登录页面见图5。

图5登录页面

3.1.2注册功能

当用户输入的用户名不存在时,将重新注册一个账号,注册成功返回登录页面进行登录。注册页面见图6。

图6注册页面

3.2国际化功能

国际化功能实现页面的中英文切换,用户可以在登录页面自行切换中英文。功能实现效果见图7所示。

图7 国际化功能实现

3.3登录拦截功能

为了确保学生信息安全,本系统使用HandlerInterceptor接口实现了用户登录拦截功能,通过实现WebMvcConfigurer接口注册拦截器,设置具体需要放行或者拦截的对象,在未进行登录验证状态下用户如果访问学生管理系统的其他页面,均会跳转到登录页面且系统会弹出“没有权限,请先登录”的警告提示。

3.4学生管理

学生管理模块主要实现了用户对学生信息的查询、增加、删除以及修改操作。学生管理页面如图8所示。

图8 学生管理页面

3.4.1 查询学生信息功能

用户可通过分页查询指定页的学生信息,也可通过学生姓名进行模糊查询,查询语句findBySnameLike("%"+sname+"%")、findByBjLike("%"+bj+"%")。例如实现查询所有名字中含“玲”的学生信息。结果见图9所示。

图9 查询班级中含“计算机”的学生信息

3.4.2 增加学生信息功能

点击学生管理页面的添加学生按钮,跳转到添加页面,添加学生信息成功之后点击返回到学生管理页面。实现添加学号为1904050763,姓名为刘静的学生信息,添加操作见图10,添加成功见图11。

图10 添加刘静的学生信息

图11 成功添加刘静的学生信息

3.4.3 删除学生信息功能

   点击学生管理页面学生信息后面的删除按钮,将会根据前面的序号id删除指定学生的信息,dao层使用List<StuInfo> deleteById(int id)语句,也可以通过复选框实现多个删除,前端页面使用语句<input type="checkbox" name="sc" th:value="${emp.id}">将选中的所有id全部传入sc里面,后端通过for定义sc数组去拿到所有的id进行多个删除功能的实现,后端代码 for(int i=0; i<sc.length;i++){studentDao.deleteById(sc[i]);}批量操作见图12和图13。

图12 通过复选框删除张三和刘玲学生信息

图13 成功删除删除张三和刘玲学生信息

3.4.4 修改学生信息功能

    修改功能主要是在原有学生信息的基础上进行修改,包括查询原信息、修改信息、保存信息三部分。首先由model.addAttribute("emps",studentDao.findById(id).get())获取所选择需要修改信息的某名学生的id,根据id获取该学生的所有信息;然后通过<input th:value="${emps.sno}" class="form-control" type="text" name="sno">等语句查询出学生原来的信息,执行修改操作之后,通过 studentDao.save(stuInfo)保存修改信息。实现将学生陈丽的籍贯修改为贵州遵义,班级修改为19数学的操作,电话号码修改为13982837823,操作见图14和图15。

图14 修改陈丽的学生信息

图15 成功修改陈丽的信息

本系统适合新手小白初学springboot框架使用,可在此基础上进行二次开发

  • 4
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
实现Spring Boot JPA中的多对多增删改操作,可以按照以下步骤进行操作: 1. 首先,在Spring Boot项目中创建两个实体类,表示多对多关系的两个实体对象。这两个实体类需要使用`@ManyToMany`注解来定义它们之间的关联关系。同时,需要在两个实体类中分别定义对方实体类的集合属性,并使用`@JoinTable`注解来指定关联表的名称和关联字段的配置。 2. 接下来,创建两个Repository接口分别用于操作这两个实体类。在这两个接口中,可以使用Spring Data JPA提供的方法来进行增删改查的操作。 3. 在需要进行多对多关系操作的地方,可以通过调用相关的Repository方法来实现增删改的功能。例如,可以使用`save()`方法来保存对象,使用`delete()`方法来删除对象。 4. 如果需要进行关联表的增删改操作,可以使用`cascade`属性来定义级联操作。例如,可以在一方实体类的集合属性上使用`cascade = {CascadeType.PERSIST, CascadeType.MERGE}`来指定级联保存和更新操作。 5. 最后,可以通过Controller来实现对多对多关系的增删改操作的接口。可以使用`@PostMapping`来处理增加操作,使用`@DeleteMapping`来处理删除操作,使用`@PutMapping`来处理更新操作。 请注意,以上是一种通用的实现方式,具体的代码实现需要根据你的实际需求和实体类设计进行相应的调整。同时,为了更好地理解和实践这个过程,建议参考引用中提供的教程,其中提供了关于Spring Boot JPA的增删改查的详细示例代码。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [springbootjpa实现增删改](https://blog.csdn.net/qq_57392213/article/details/128450489)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [Springboot整合Hibernate thymeleaf,添删改查,分页查询等,单元测试,亲测百分之白可运行](https://download.csdn.net/download/s54156s4/10606800)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [SpringBoot JPA:JPARepository的增删改(简单理解)](https://blog.csdn.net/qq_43055855/article/details/110144484)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值