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

 🍅 作者主页: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
;

图书借阅

CREATE TABLE `NewTable` (
`id`  int(11) NOT NULL AUTO_INCREMENT ,
`user_id`  int(11) NULL DEFAULT NULL ,
`book_id`  int(11) NULL DEFAULT NULL ,
`date`  date NULL DEFAULT NULL ,
PRIMARY KEY (`id`),
FOREIGN KEY (`book_id`) REFERENCES `book` (`book_id`) ON DELETE RESTRICT ON UPDATE RESTRICT,
FOREIGN KEY (`user_id`) REFERENCES `user` (`user_id`) ON DELETE RESTRICT ON UPDATE RESTRICT,
INDEX `user_id` (`user_id`) USING BTREE ,
INDEX `book_id` (`book_id`) USING BTREE 
)
ENGINE=InnoDB
DEFAULT CHARACTER SET=utf8 COLLATE=utf8_general_ci
AUTO_INCREMENT=67
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毕设项目精品实战案例《100套》

HTML5大作业实战案例《100套》

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

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

相关文章

基于javaspringboot+mybatis汽车信息管理系统设计和实现

演示地址 主要实现技术&#xff1a;Java、springmvc、springboot、mysql、mybaits、jQuery、js、css等、使用eclipse/idea运行。 主要功能模块 1.用户模块管理&#xff1a;用户登录、用户注册、用户的查询、添加、删除操作、 2.汽车类型管理&#xff1a;.汽车类型列表的展示…

linux推箱子脚本,【编程例题】标准C语言实现推箱子游戏!附解析!

今天我来分享一道对于初学C语言的同学非常有启发作用的编程例题&#xff0c;是用C语言实现单张地图推箱子的小游戏。这个游戏是基于Linux环境下编程的&#xff0c;所用工具为ubuntu、和gcc编译器。首先推箱子的地图&#xff0c;我们根据经典游戏推箱子中的其中一幅地图来自做&a…

基于JavaSwing+mysql的图书管理系统设计和实现

前言&#xff1a; 项目是使用Java swing开发&#xff0c;可实现基础数据维护、图书类型管理和维护、图书信息管理和维护、注销退出、关于作者简介等功能。界面设计比较简介、适合作为Java课设设计以及学习技术使用。 引言 随着计算机及网络技术的飞速发展&#xff0c;Intranet …

linux的vi把文件合并一行,学习Vim合并行的方法和技巧

刚接触 Vim 会觉得它的学习曲线非常陡峭&#xff0c;要记住很多命令。所以这个系列的分享&#xff0c;不会教你怎么配置它&#xff0c;而是教你怎么快速的使用它。在开发时为了代码美观&#xff0c;经常会把属性用换行的方式显示。title"批量编辑所属组织":visible.s…

基于JavaSwing+mysql的学生社团管理系统设计和实现

前言&#xff1a; 项目是使用Java swingmysql开发&#xff0c;可实现基础数据维护、用户登录注册、社团信息列表查看、社团信息添加、社团信息修改、社团信息删除以及退出注销等功能、界面设计比较简单易学、适合作为Java课设设计以及学习技术使用。 引言 随着全球信息化的迅猛…

linux dhcp服务软包,dpkg包管理器详解

使用Debian或Ubuntu的linux用户肯定都用过或听过dpkg命令。“dpkg ”是“Debian Packager ”的简写。为 “Debian” 专门开发的套件管理系统&#xff0c;方便软件的安装、更新及移除。所有源自“Debian”的“Linux ”发行版都使用 “dpkg”。我的问题先说先我使用时的疑问。在使…

专栏订阅须知《必读》

作者介绍 专栏介绍&#xff1a; 本专栏是JavaWeb项目实战实战100套合集、目前作者还在更新整理、每一套都是经过作者精心测试运行调整无bug、订阅前先私聊博主、目前专栏列表还在慢慢整理更新中、部分精品私人定制项目在Java项目实战也能看见、需要的话可以联系博主 你能获取什…

lbp2900打印机linux驱动下载,佳能LBP2900打印机驱动

佳能LBP2900打印机驱动佳能LBP2900打印机驱动是一款由佳能官方推出的佳能LBP2900打印机驱动程序&#xff0c;佳能LBP2900打印机驱动操作简单、功能实用&#xff0c;能够有效解决打印机无法识别设备的问题&#xff0c;保证您进行正常的打印工作&#xff0c;是用户不可缺少的打印…

windows安装MySQL数据库【附安装文档和安装包】

MySQL下载地址&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1LE7jpBgcZFaQyLwYdXvvJQ&shflsharepset 提取码&#xff1a;ksx3 复制这段内容后打开百度网盘手机App&#xff0c;操作更方便哦 1,双击安装程序&#xff0c;进入安装页面&#xff1a;在下面的打钩…

基于java springboot博客管理系统设计和实现

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

c语言成绩等级switch语句,请高手 帮忙做一道c语言题 编程,把百分制成绩转换成5级记分制,要求用switch语句。 90分以上(包括90):...

请高手 帮忙做一道c语言题 编程&#xff0c;把百分制成绩转换成5级记分制&#xff0c;要求用switch语句。 90分以上(包括90)&#xff1a;关注:243 答案:6 mip版解决时间 2021-02-04 20:52提问者巴黎左岸2021-02-03 20:52编程&#xff0c;把百分制成绩转换成5级记分制&#xf…

JavaSwing+mysql的图书管理系统设计实现

本项目演示地址链接 》 前言: 项目是使用Java swing开发,可实现基础数据维护、图书类型管理和维护、图书信息管理和维护、注销退出、关于作者简介等功能。界面设计比较简介、适合作为Java课设设计以及学习技术使用。 引言 随着计算机及网络技术的飞速发展,…

通信原理实验c语言,基于LabVIEW软件的通信原理实验教学平台设计方案

1.引言本文引用地址&#xff1a;http://www.eepw.com.cn/article/201809/388499.htm《通信原理》课程是我校通信工程专业、电子信息工程专业的一门专业基础课&#xff0c;学生对本门课程的掌握程度直接影响到后续专业课程的学习。在实际教学中认识到由于其理论性比较强&#xf…

android 菜单 功能键,Android交互体验必知:功能按键事件

【51CTO独家译文】本文为翻译自外文网站tutsplus.com的《Android交互体验必知&#xff1a;功能按键事件》。以下为全部译文&#xff1a;开始学习每一种Android设备一般都会提供除字母和数字外的物理功能按键&#xff0c;这一般是根据不同的Android制造商而有所不同&#xff0c;…

基于java springboot博客交流平台系统设计和实现

本项目演示连接地址》 前言 博客&#xff0c;又译为网络日志、 部落格或部落阁等&#xff0c;是一种通常由个人管理、不定期张贴新的文章的网站。 博客上的文章通常根据张贴时间&#xff0c; 以倒序方式由新到旧排列。 许多博客专注在特定的课题上提供评论或新闻&…

基于JavaWeb SSM mybatis 私人健身房系统管理平台设计和实现以及文档报告

本项目演示链接地址》 主要技术&#xff1a;Java 、springmvc、mybatis、jQuery 数据库&#xff1a;mysql 主要功能模块&#xff1a;登录、管理员列表、会员用户列表、健身课程信息、教练信息、器材信息、训练信息等 部分功能截图如下&#xff1a; 登录&#xff1a; 系统首…

基于 java springboot+layui仓库管理系统设计和实现

本项目演示链接地址》 主要功能模块 1.用户模块管理&#xff1a;用户登录、用户注册、用户的查询、添加、删除操作、 2.客户信息管理&#xff1a;.客户列表的展示、添加、修改、删除操作、 3.供应商管理&#xff1a;供应商详情列表的查看、添加、删除等操作、 4.退货管理和…

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

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

Java--Mybatis万字长文经典面试题王者笔记《收藏版》

前言&#xff1a; 前段时间一直和大家在分享java项目实战的内容、今天趁着周末给大家整理了Java工程师在面试中经常被问到持久层框架的面试题《Java--Mybatis》篇、希望大家喜欢、支持。后期也会继续整理其他的知识点、比如、ZooKeeper、Dubbo、Redis、MySQL、Spring、…

基于javaweb(springboot+mybatis)宠物医院预约管理系统设计和实现

本项目演示链接地址》 项目使用java SpringMVC、springboot mybatis、layui为核心技术编写 多的不说&#xff0c;直接上一部分效果图吧 首页登录有可爱的小猫咪 系统主页主要功能有会员信息、宠物管理、预约管理和统计分析等 预约列表 医院管理 宠物档案管理 下载订阅地址 相…