基于jsp+Spring boot+mybatis的图书管理系统设计和实现

🍅 作者主页:Java李杨勇 

🍅 简介:Java领域优质创作者🏆、【java李杨勇】公号作者✌  简历模板、学习资料、面试题库【关注我,都给你】

🍅文末获取源码联系🍅

 前言

         随着网络技术的发展、计算机应用水平广泛提高,原来系统的时效性、数据的正确性、操作的方便性上都存在不足,已影响到系统的正常使用。经过考察比较,决定自己对图书管理系统重新设计,使系统能利用软件开发技术的成果,方便图书的管理。图书管理系统是典型的信息管理系统。系统介绍了图书系统的开发过程,设计中遇到的问题及解决方法以及提高当前应用程序或系统开发进度和改善工作性能。利用其提供的各种面向对象的开发工具首先在短时间内建立系统应用原型然后对初始原型系统进行需求迭代,不断修正和改进,直到形成用户满意的可行系统。
      本次课程设计利用JAVA开发工具和Mysql数据库来开发这个图书管理系统。该系统要解决图书管理所要解决的问题,可以满足图书管理基本要求,包括添加、管理等功能。该系统能根据用户的需求,快捷方便的为读者提供借阅服务。

背景意义


        随着计算机的广泛应用,其逐步成为现代化的标志。图书馆或者一些企业内部,甚至是书店,在正常运行过程中总是面对大量的读者信息,书籍信息以及两者相互作用产生的借书信息、还书信息。因此需要对读者资源、书籍资源、借书信息、还书信息进行管理,及时了解各个环节中信息的变更,要对因此而产生的单据进行及时的处理,为了提高图书馆或者企业内部对图书存销的自动化的管理,能够更快速的满足读者的要求,提高各种工作的效率,现对其设计相应的系统。图书管理系统的主要功能是实现图书馆图书借阅和归还的管理的自动化。围绕这一主要功能,本系统涉及到以下核心功能:借阅管理,归还管理。除了这些核心功能外,还包括一些基本和辅助功能,它们是:用户管理、图书管理、图书查询。

 

 数据库设计

用户表

CREATE TABLE `NewTable` (
`admin_id`  int(11) NOT NULL AUTO_INCREMENT ,
`admin_name`  varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
`admin_pwd`  varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
`admin_email`  varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
PRIMARY KEY (`admin_id`)
)
ENGINE=InnoDB
DEFAULT CHARACTER SET=utf8 COLLATE=utf8_general_ci
AUTO_INCREMENT=2
ROW_FORMAT=DYNAMIC
;

图书表

CREATE TABLE `NewTable` (
`book_id`  int(11) NOT NULL AUTO_INCREMENT ,
`book_name`  varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,
`book_author`  varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
`book_publish`  varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
`book_category`  int(11) NULL DEFAULT NULL ,
`book_price`  double NULL DEFAULT NULL ,
`book_introduction`  varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
PRIMARY KEY (`book_id`),
FOREIGN KEY (`book_category`) REFERENCES `book_category` (`category_id`) ON DELETE RESTRICT ON UPDATE RESTRICT,
INDEX `book_category` (`book_category`) USING BTREE 
)
ENGINE=InnoDB
DEFAULT CHARACTER SET=utf8 COLLATE=utf8_general_ci
AUTO_INCREMENT=72
ROW_FORMAT=DYNAMIC
;

图书类型

CREATE TABLE `NewTable` (
`category_id`  int(11) NOT NULL AUTO_INCREMENT ,
`category_name`  varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
PRIMARY KEY (`category_id`)
)
ENGINE=InnoDB
DEFAULT CHARACTER SET=utf8 COLLATE=utf8_general_ci
AUTO_INCREMENT=51
ROW_FORMAT=DYNAMIC
;

功能截图

登录:

用户选择角色输入账号密码进行登录 

管理员首页:

登录后的主要模块有

系统管理《用户管理、角色管理、应用数据 》

图书管理《图书分类、图书信息、借书管理、还书管理》

个人信息查看以及修改退出等

 

用户管理:

点击查看用户的信息、可根据推荐搜索用户信息、可以添加和修改删除用户信息

 

角色管理:

点击查看角色信息、以及模糊搜索和重置信息、添加修改角色信息、根据角色分配权限信息

 添加角色:

分配权限:

 
应用管理:

图书信息管理:

图书分类:

图书信息:

借书管理:


还书管理:

用户端:

 用户登录后可以查看自己的借阅记录、以及去借书和归还书籍等操

借书管理:

还书管理:

图书检索:

借还记录:

代码实现

       这个项目功能比较简单、用的技术也是大家非常熟悉的技术、主要是springboot、springmvc、mybatis以前端的jquery、layui、html和css等基本样式。就拿登录来举一个完整例子吧、首先是前端静态页面的编写以及发送登录请求

<!DOCTYPE html>
<html lang="zh-CN" xmlns:th="http://www.thymeleaf.org">
<head><meta charset="UTF-8"><title>Title</title><link rel="stylesheet" th:href="@{/layui/css/layui.css}"><style>body {/*width: 100%;*//*height: 100%;*/background: url("/images/background.png") no-repeat;/*background: url("static/images/a.png") no-repeat;*/background-size: cover;}#login_form {width: 400px;height: 300px;margin: 80px auto;padding: 30px;background-color: #f2f2f2;opacity: 0.9;}</style>
</head>
<body><div id="wrapper" style="margin-top: 260px"><div class="layui-container" id="login_form"><div><h1 style="color: red;text-align: center">图书管理系统</h1><br></div><form class="layui-form" id="my_form" method="post" action="/userLogin"><div class="layui-form-item"><label class="layui-form-label">用户名:</label><div class="layui-input-block"><input type="text" name="userName" id="username" autofocusplaceholder="请输入用户名" autocomplete="off" class="layui-input"></div></div><div class="layui-form-item"><label class="layui-form-label">密 码:</label><div class="layui-input-block"><input type="password" name="password" id="password"placeholder="请输入密码" autocomplete="off" class="layui-input"></div></div><div class="layui-form-item"><label class="layui-form-label">用户身份</label><div class="layui-input-block"><input class="form-check-input" type="radio" name="role" value="1" title="学生" checked><input class="form-check-input" type="radio" name="role" value="0" title="管理员"></div></div><div class="layui-form-item layui-col-md4 layui-col-md-offset4"><button id="sub_btn" class="layui-btn layui-btn-normal">登录</button></div></form></div>
</div><script th:src="@{/scripts/jquery.min.js}"></script>
<script th:src="@{/layui/layui.js}"></script><script th:inline="javascript">layui.use(['layer', 'form'], function () {let layer = layui.layer;let form = layui.form;form.render();$(function () {let flag = [[${session.flag}]];if (flag) {layer.msg("用户名或密码错误", {icon: 2,time: 2000 //2秒关闭(如果不配置,默认是3秒)});}});});$("#sub_btn").click(function () {let username = $("#username").val();let user_judge = check(username);// 首先判断用户名是否为空if (user_judge) {let password = $("#password").val();let pwd_judge = check(password);// 用户名不为空  , 判断密码是否为空if (pwd_judge) {let role_id = $('input[name="role"]:checked').val();// 如果role_id ==1 ,则是普通用户 , 直接提交表单if (role_id == 1) {$("#my_form").submit();} else {//如果是管理员 , 则将action 进行更改$("#my_form").attr("action", "/adminLogin")$("#my_form").submit();}} else {layer.alert("密码不能为空", {icon: 5});return false;}} else {layer.alert("用户名不能为空", {icon: 5});return false;}});// 校验表单中用户名 与 密码是否输入,  如果有值 -> 返回 true , 如果未输入 返回 false;function check(val) {val = val.toString().trim();return !(val == '');}</script>
</body>
</html>

    后台Controller接收到前端的登录请求之后执行参数校验、将前端传递过来的用户名密码以及用户角色进行判断验证、调用userService.userLogin方法执行用户登录验证、查询数据库当前账号密码是否正确、返回状态码给前端、前端根据状态码进行相对的页面跳转以及数据效应。

/*** 用户登录** @param userName* @return*/@PostMapping("/userLogin")public String userLogin(@Param("userName") String userName,@Param("password") String password, HttpServletRequest request) {User user = userService.userLogin(userName, password);if (null != user) {// flag = 0 表示用户名密码校验成功  【用于前端校验】request.getSession().setAttribute("flag", 0);request.getSession().setAttribute("user", user);return "user/index";}// flag 为 1 表示 登录失败 【用于前端校验】request.getSession().setAttribute("flag", 1);return "index";}

总体来说这个项目功能相对还是比较简单优秀的、适合初学者作为课程设计和毕业设计参考  

订阅专栏下载源码 

java项目实战推荐:

基于java ssm springboot+VUE疫情防疫系统系统前后端分离设计和实现

基于java springboot+mybatis电影售票网站管理系统前台+后台设计和实现

基于java ssm springboot+mybatis酒庄内部管理系统设计和实现

基于JAVA springboot+mybatis智慧生活分享平台设计和实现

基于Java springboot+vue+redis前后端分离家具商城平台系统设计和实现

基于JAVA SSM springboot实现的抗疫物质信息管理系统设计和实现

基于java ssm springboot实现选课推荐交流平台系统设计和实现

基于JAVA springboot+mybatis 电商书城平台系统设计和实现

基于java springboot+mybatis爱游旅行平台前台+后台设计实现

基于java SSM springboot景区行李寄存管理系统设计和实现

基于java springboot的图书管理系统设计和实现

基于jsp+mysql+mybatis+Spring boot简单学生成绩信息管理系统

基于java ssm springboot女士电商平台系统设计和实现

基于Java+jsp+servlet的养老院管理系统设计和实现

基于jsp+mysql的JSP在线水果销售商城系统设计实现

基于JavaWeb SSM mybatis 学生信息管理系统设计和实现

基于javaweb(springboot+mybatis)网上酒类商城项目设计和实现

基于jsp+mysql+Spring的SSM在线蛋糕商城销售网站项目设计和实现

基于java SSM的房屋租赁系统设计和实现

基于javaweb SSM邮件收发信息系统设计和实现以及文档

基于JavaWEB SSM SpringBoot婚纱影楼摄影预约网站设计和实现

基于jsp+mysql+Spring的SpringBoot招聘网站项目设计和实现

基于java web jsp+servlet学生宿舍管理系统

基于jsp+mysql+Spring+mybatis的SSM汽车保险理赔管理系统设计和实现

 总体来说这个项目功能相对还是比较简单优秀的、适合初学者作为课程设计和毕业设计参考 

另外需要白嫖java学习资料包括《JVM、Netty、Mysql、Mybatis、Redis、Dubbo、Nginx、设计模式》等10G java资料学习礼包、可以看我主页或私信博主都行

打卡Java项目更新 11 / 100天

大家可以点赞、收藏、关注、评论我啦 、

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/562188.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

android 开发环境以及hello world,Android Studio开发环境搭建和HelloWorld

先下一个Pie吧然后发现run的位置是灰色的&#xff0c;而且这个Add Configuration没有下拉列表我去百度了一下这个问题&#xff0c;它让我在下拉列表里找APP???百度上面没有找到关于这个的解答&#xff0c;我就想是不是我的安装包出问题了&#xff0c;于是我就卸了重新装彻底…

基于jsp+mysql+Spring+hibernate+在线学习交流论坛平台

本项目演示链接地址 》 主要功能模块设计&#xff1a; 管理员角色包含以下功能&#xff1a;管理员登录,发布公告,修改资料,查看新帖,查看精华帖请求,封锁用户,创建讨论区等功能。 用户角色包含以下功能&#xff1a;按分类查看,用户登录,查看帖子详情,查看我的帖子,提交帖子,资料…

基于jsp+Spring+mybatis的SSM企业门户网站设计和实现

本项目演示链接地址 》 前言 人类社会已经迈入了21世纪&#xff0c;信息技术的浪潮也冲击着社会的方方面面。以计算机互联网为核心的科学技术为社会各行各业提供了前所未有的机会和发展潜力。生产业也不例外。互联网走到今天&#xff0c;也有五年的光景了&#xff0c;之间经历了…

html+字体图标找不到字体,bootstrap中不显示字体图标问题怎么解决?

bootstrap中不显示字体图标的原因是什么&#xff1f;怎么解决&#xff1f;下面本篇文章给大家介绍一下。有一定的参考价值&#xff0c;有需要的朋友可以参考一下&#xff0c;希望对大家有所帮助。你在使用bootstrap字体图标的时候&#xff0c;是否遇到引用本地Bootstrap文件无法…

buffsize 缓冲区的大小多少合适_对于Redis性能指标监控!你了解多少?

监控指标性能指标&#xff1a;Performance内存指标: Memory基本活动指标&#xff1a;Basic activity持久性指标: Persistence错误指标&#xff1a;Error监控方式redis-benchmarkredis-statredis-fainaredisliveredis-climonitorshowlog1.get&#xff1a;获取慢查询日志2.len&am…

java怎么确定数据在区间内_处理数据时,单元格内内容太多无法计数怎么破?...

在职场办公中&#xff0c;处理数据时有时会遇到古里古怪的数据源&#xff0c;比如从系统导出来的或是表哥表弟们录入数据的不规范。从而使得后续处理起来比较棘手。规范数据源很重要&#xff01;话不多说&#xff0c;先来看看今天要分享的案例&#xff1a;每个订单下有多种物料…

html调用app store,iOS 获取appStore的链接地址,从app中跳转 appStore中应用

从app中跳转到appStore中&#xff0c;分为1.取得app在appStore中的链接地址mac打开iTunes,在右上角中的搜索框中输入你的应用名称。在弹出的菜单中&#xff0c;选择复制链接&#xff0c;得到该应用的链接地址&#xff1a;https://itunes.apple.com/cn/app/jie-zou-da-shi/id493…

上下级平台之间数据同步方案_Alluxio与底层存储系统之间的元数据同步机制

请点击上方蓝字&#xff0c;关注我们哦&#xff01;作者简介&#xff1a;林意群&#xff0c;Apache Hadoop PMC member&#xff0c;Apache Ozone PMC member&#xff0c;拥有多年参与开源社区经验&#xff0c;主要专注于存储领域的研究和学习&#xff0c;目前任eBay Hadoop tea…

基于java SSM图书管理系统简单版设计和实现

本项目演示链接地址 》 主要技术&#xff1a;后台采用技术&#xff1a; SSM框架(SpringMVC Spring Mybatis) 前台采用技术&#xff1a; div css 功能比较简单、适合学习使用 主要功能&#xff1a;登录、图书类型添加、图书类型列表、编辑和删除、图书上传。图书列表、导出…

html中的行内标签吗,HTML标签中行内元素和块级元素详解

本文主要和大家详细介绍了HTML常用的标签中行内元素和块级元素&#xff0c;需要的朋友参考下吧&#xff0c;希望能帮助到大家。块元素(block element) HTML标签分类明细* address - 地址* blockquote - 块引用* center - 举中对齐块* dir - 目录列表* p - 常用块级容易&#xf…

基于javaweb jsp+servlet学生宿舍管理系统设计和实现

本项目演示链接地址 》 主要技术&#xff1a;spring、jsp、servlet、mysql、tomcat 、jsp、jquery、css、c390 、cookie、session等基本技术实现 主要功能:不同角色登录、宿舍管理员管理、学生信息管理、宿舍信息管理、学生缺勤管理、修改密码和退出功能。 系统功能截图&…

html泰勒展开,【转载】泰勒展开式

泰勒展开式对于利用FPGA实现算法来说非常实用&#xff0c;可以将除法等对硬件不友好的运算转变为乘加操作。特此转载以下博文&#xff0c;原文标题及链接为&#xff1a;泰勒展开式 - guoxiang - 博客园https://www.cnblogs.com/guo-xiang/p/6662881.html数学中&#xff0c;泰勒…

基于Java Swing五子棋小游戏设计和实现

本项目演示链接地址 》 前言: 五子棋相传起源于四千多年前的尧帝时期,比围棋的历史还要悠久,可能早在“尧造围棋”之前,民间就已有五子棋游戏。有关早期五子棋的文史资料与围棋有相似之处,因为古代五子棋的棋具与围棋是完全相同的。 在上古的神话传说中有“女…

ueditor工具栏弹出html,UEditor工具栏上自定义按钮、图标、事件、窗口页面

第一步&#xff1a;找到editor_config.js(或者ueditor.config.js)文件中的toolbars参数&#xff0c;增加一个“camnpr”字符串&#xff0c;对应着添加一个labelMap&#xff0c;用于鼠标移上按钮时的提示。1toolbars:[2[...,searchreplace,help,camnpr]3],4labelMap:{5anchor:,u…

junit 单元测试报错java.lang.NoClassDefFoundError

查看版本 junit-4.11以上版本不在包含hamcrest。 解决方法&#xff1a; 下载 junit-4.11以下版本或下载hamcrest-core-1.3.jar驱动包

aps后缀是什么文件_APS审核真的取消了么?

今天早上&#xff0c;留德朋友圈被一条看似惊人的消息刷爆了&#xff1a;APS审核取消了。从早上8点开始&#xff0c;老狗微信的提示音就没有消停过&#xff0c;很多学生抱着同样的问题过来询问&#xff1a;老师&#xff0c;APS是不是真的取消了&#xff1f;我马上爬了起来&…

基于java Springboot实现教务管理系统《视频版-建议收藏》

视频演示&#xff1a; 文末获取源码联系 java Springboot教务管理系统研究背景&#xff1a; 在当今信息社会发展中中&#xff0c;计算机科学的飞速发展&#xff0c;大多数学校开始注意办公效率的发展是很关键&#xff0c;对学校的管理起到举足轻重的作用。基于 Internet 网络的…

c调用python gensim包_Jupyter Notebooks嵌入Excel并使用Python替代VBA宏

以前&#xff0c;Excel和Python Jupyter Notebook之间我们只能选择一个。但是现在随着PyXLL-Jupyter软件包的推出&#xff0c;可以将两者一起使用。在本文中&#xff0c;我将向你展示如何设置在Excel中运行的Jupyter Notebook。在这两者之间共享数据&#xff0c;甚至可以从Exce…

基于java Springboot实现课程评分系统设计和实现

&#x1f345; 作者主页&#xff1a;Java李杨勇 &#x1f345; 简介&#xff1a;Java领域优质创作者&#x1f3c6;、Java李杨勇公号作者✌ 简历模板、学习资料、面试题库、技术互助【关注我&#xff0c;都给你】 &#x1f345; 欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f…

百度-Java中级面试题分享-

BeanFactory 和 ApplicationContext 有什么区别 > BeanFactory 可以理解为含有 bean 集合的工厂类。BeanFactory 包含了种 bean 的定义&#xff0c; 以便在接收到客户端请求时将对应的 bean 实例化。 > BeanFactory 还能在实例化对象的时生成协作类之间的关系。此举将 b…