ideaSSM图书借阅管理系统VS开发mysql数据库web结构java编程计算机网页源码maven项目
一、源码特点
SSM 图书借阅管理系统是一套完善的信息管理系统,结合SSM框架和bootstrap完成本系统,对理解JSP java编程开发语言有帮助系统采用SSM框架(MVC模式开发),系统具有完整的源代码
和数据库,系统主要采用B/S模式开发。
前段主要技术 bootstrap.css jquery
后端主要技术 SpringMVC spring mybatis
数据库 mysql
开发工具 IDEA JDK1.8 TOMCAT 8.5
idea 图书借阅管理系统
二、功能介绍
系统主要角色包括管理员,读者
(1)管理员管理:对管理员信息进行添加、删除、修改和查看
(2)读者管理:对读者信息进行添加、删除、修改和查看
(3)公告管理:对公告信息进行添加、删除、修改和查看
(4)图书类型管理:对图书类型信息进行添加、删除、修改和查看
(5)图书管理:对图书信息进行添加、删除、修改和查看 导入
(6)预约图书管理:对预约图书信息进行添加、删除、修改和查看
(7)还书管理:对还书信息进行添加、删除、修改和查看
(8)异常还书管理:对异常还书信息进行添加、删除、修改和查看
(9)个人信息修改、登录
数据库设计
CREATE TABLE `gly` (
`glyid` int(11) NOT NULL auto_increment,
`yhm` VARCHAR(40) default NULL COMMENT '用户名',
`mm` VARCHAR(40) default NULL COMMENT '密码',
`xm` VARCHAR(40) default NULL COMMENT '姓名', PRIMARY KEY (`glyid`)
) ENGINE=InnoDB DEFAULT CHARSET=gb2312;
CREATE TABLE `duzhe` (
`dzid` int(11) NOT NULL auto_increment,
`yhm` VARCHAR(40) default NULL COMMENT '用户名',
`mm` VARCHAR(40) default NULL COMMENT '密码',
`xm` VARCHAR(40) default NULL COMMENT '姓名',
`lxdh` VARCHAR(40) default NULL COMMENT '联系电话',
`lxdz` VARCHAR(40) default NULL COMMENT '联系地址', PRIMARY KEY (`dzid`)
) ENGINE=InnoDB DEFAULT CHARSET=gb2312;
CREATE TABLE `gonggao` (
`ggid` int(11) NOT NULL auto_increment,
`bt` VARCHAR(40) default NULL COMMENT '标题',
`nr` VARCHAR(40) default NULL COMMENT '内容',
`fbsj` VARCHAR(40) default NULL COMMENT '发布时间', PRIMARY KEY (`ggid`)
) ENGINE=InnoDB DEFAULT CHARSET=gb2312;
CREATE TABLE `tslx` (
`tslxid` int(11) NOT NULL auto_increment,
`lx` VARCHAR(40) default NULL COMMENT '类型', PRIMARY KEY (`tslxid`)
) ENGINE=InnoDB DEFAULT CHARSET=gb2312;
CREATE TABLE `tushu` (
`tsid` int(11) NOT NULL auto_increment,
`tsmc` VARCHAR(40) default NULL COMMENT '图书名称',
`lx` VARCHAR(40) default NULL COMMENT '类型',
`zz` VARCHAR(40) default NULL COMMENT '作者',
`cbs` VARCHAR(40) default NULL COMMENT '出版社',
`js` VARCHAR(40) default NULL COMMENT '介绍',
`kc` VARCHAR(40) default NULL COMMENT '库存', PRIMARY KEY (`tsid`)
) ENGINE=InnoDB DEFAULT CHARSET=gb2312;
CREATE TABLE `yyts` (
`yytsid` int(11) NOT NULL auto_increment,
`lsh` VARCHAR(40) default NULL COMMENT '流水号',
`ts` VARCHAR(40) default NULL COMMENT '图书',
`yh` VARCHAR(40) default NULL COMMENT '用户',
`tjsj` VARCHAR(40) default NULL COMMENT '提交时间',
`yysj` VARCHAR(40) default NULL COMMENT '预约时间',
`ghsj` VARCHAR(40) default NULL COMMENT '归还时间',
`zt` VARCHAR(40) default NULL COMMENT '状态', PRIMARY KEY (`yytsid`)
) ENGINE=InnoDB DEFAULT CHARSET=gb2312;
CREATE TABLE `haishu` (
`hsid` int(11) NOT NULL auto_increment,
`yy` VARCHAR(40) default NULL COMMENT '预约',
`hssj` VARCHAR(40) default NULL COMMENT '还书时间',
`yh` VARCHAR(40) default NULL COMMENT '用户',
`sm` VARCHAR(40) default NULL COMMENT '说明',
`zt` VARCHAR(40) default NULL COMMENT '状态', PRIMARY KEY (`hsid`)
) ENGINE=InnoDB DEFAULT CHARSET=gb2312;
CREATE TABLE `ychs` (
`ychsid` int(11) NOT NULL auto_increment,
`yy` VARCHAR(40) default NULL COMMENT '预约',
`lx` VARCHAR(40) default NULL COMMENT '类型',
`clsm` VARCHAR(40) default NULL COMMENT '处理说明',
`cfsm` VARCHAR(40) default NULL COMMENT '处罚说明',
`czsj` VARCHAR(40) default NULL COMMENT '操作时间', PRIMARY KEY (`ychsid`)
) ENGINE=InnoDB DEFAULT CHARSET=gb2312;
代码设计
@Resourceprivate haishuDao haishudao;@RequestMapping(value="/addpage")public String addpage(haishu bean, HttpServletRequest request){/**还书添加页面*/Map<String,Object> map= new HashMap<String,Object>();System.out.println("addPageok");return "haishu/haishuadd";}@RequestMapping(value="/add")public String add(haishu bean, HttpServletRequest request){/**还书添加处理方法**/Map<String,Object> map= new HashMap<String,Object>();//初始变量String hsid=(String)request.getParameter("hsid");//还书编号String yy=(String)request.getParameter("yy");//预约String hssj=(String)request.getParameter("hssj");//还书时间String yh=(String)request.getParameter("yh");//用户String sm=(String)request.getParameter("sm");//说明String zt=(String)request.getParameter("zt");//状态DBO db=new DBO();String sql="";ResultSet rs=null;try{sql="update yyts set zt='已归还',ghsj='"+ StaticMethod.getStringDate()+"' where lsh='"+yy+"'";db.update(sql);sql="update tushu set kc=kc+1 where tsid in (select ts from yyts where lsh='"+yy+"')";db.update(sql);haishudao.add(bean);//调用添加方法System.out.println("add");request.setAttribute("msg", "<script>alert('操作成功');</script>");//操作提示}catch(Exception e){e.printStackTrace();}finally {db.close();}return "haishu/list";}/**删除 还书**/@RequestMapping(value="/del")public String del(HttpServletRequest request,Map<String,Object> map){// Map<String,Object> map= new HashMap<String,Object>();//初始化对象String a=(String)request.getParameter("keyid");//request 方式获得主键idint id=Integer.parseInt(a);request.setAttribute("msg", "<script>alert('删除成功');</script>");haishudao.delete(id);//调用 删除方法return listpage(map,request);}/*** 查询haishu信息 返回list结果 前台获取*/@RequestMapping(value="/listpage")public String listpage(Map<String,Object> map,HttpServletRequest request){List<Map> list= new ArrayList<Map>();//初始化对象Map map1= new HashMap();String hsid=(String)request.getParameter("hsid");//还书编号if(hsid!=null&&!hsid.equals("")){map1.put("hsid",hsid);//还书编号}String yy=(String)request.getParameter("yy");//预约if(yy!=null&&!yy.equals("")){map1.put("yy",yy);//预约}String hssj=(String)request.getParameter("hssj");//还书时间if(hssj!=null&&!hssj.equals("")){map1.put("hssj",hssj);//还书时间}String yh=(String)request.getParameter("yh");//用户if(yh!=null&&!yh.equals("")){map1.put("yh",yh);//用户}String sm=(String)request.getParameter("sm");//说明if(sm!=null&&!sm.equals("")){map1.put("sm",sm);//说明}String zt=(String)request.getParameter("zt");//状态if(zt!=null&&!zt.equals("")){map1.put("zt",zt);//状态}list=haishudao.getAll(map1);//传入 方法参数 返回gly结果集System.out.println("listsize="+list.size());map.put("list", list);//传递参数return "haishu/haishulist";}/**还书详情信息*/@RequestMapping(value="/detail")public String detail(Map<String,Object> map,HttpServletRequest request){String keyid=(String)request.getParameter("keyid");//request 方式获得主键idhaishu bean=new haishu();//初始化对象bean=haishudao.gethaishuByID(Integer.parseInt(keyid));//根据id返回 haishu对象数据request.setAttribute("hsid", bean.getHsid());//还书编号request.setAttribute("yy", bean.getYy());//预约request.setAttribute("hssj", bean.getHssj());//还书时间request.setAttribute("yh", bean.getYh());//用户request.setAttribute("sm", bean.getSm());//说明request.setAttribute("zt", bean.getZt());//状态return "haishu/haishudetail";}
三、注意事项
具体功能如视频所示
1、管理员账号:admin密码:admin 数据库配置文件src\main\resources\jdbc.properties
2、开发环境为IDEA开发,数据库为mysql,使用java语言开发。
3、数据库文件名是jspibook.sql 系统名称book
4、地址:login.jsp
四 系统实现
代码下载
https://download.csdn.net/download/qq_41221322/89059197
需要源码 其他的定制服务 下方联系卡片↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
相关文章:

ideaSSM图书借阅管理系统VS开发mysql数据库web结构java编程计算机网页源码maven项目
一、源码特点 SSM 图书借阅管理系统是一套完善的信息管理系统,结合SSM框架和bootstrap完成本系统,对理解JSP java编程开发语言有帮助系统采用SSM框架(MVC模式开发),系统具有完整的源代码 和数据库,系统主…...

普联一面4.2面试记录
普联一面4.2面试记录 文章目录 普联一面4.2面试记录1.jdk和jre的区别2.java的容器有哪些3.list set map的区别4.get和post的区别5.哪个更安全6.java哪些集合类是线程安全的7.创建线程有哪几种方式8.线程的状态有哪几种9.线程的run和start的区别10.什么是java序列化11.redis的优…...

SQLite的架构(十一)
返回:SQLite—系列文章目录 上一篇:SQLite下一代查询规划器(十) 下一篇:SQLite—系列文章目录 介绍 本文档介绍SQLite库的架构。 这里的信息对那些想要了解或 修改SQLite的内部工作原理。 接口SQL 命令处理器虚拟机B-树…...

Vue2电商前台项目(一):项目前的初始化及搭建
一、项目初始化 创建项目:sudo vue create app 1.项目配置 (1)浏览器自动打开 在package.json文件中,serve后面加上 --open "scripts": {"serve": "vue-cli-service serve --open","buil…...

4.6 offset指令,jmp short指令,far,dword ptr各种跳转指令
4.6 offset指令,jmp short指令,far,dword ptr各种跳转指令 可以修改IP,或同时修改CS和IP的指令统称为转移指令。概括的讲,转移指令就是可以控制CPU执行内存中某处代码的指令 1. 转移指令 1.1 8086CPU的转移行为有以…...

【WEEK5】 【DAY5】DML语言【中文版】
2024.3.29 Friday 目录 3.DML语言3.1.外键(了解)3.1.1.概念3.1.2.作用3.1.3.添加(书写)外键的几种方法3.1.3.1.创建表时直接在主动引用的表里写(被引用的表的被引用的部分)3.1.3.2.先创建表后修改表以添加…...

媒体偏见从何而来?--- 美国MRC(媒体评级委员会)为何而生?
每天当我们打开淘宝,京东,步入超市,逛街或者逛展会,各种广告铺天盖地而来。从原来的平面广告,到多媒体广告,到今天融合AR和VR技术的数字广告,还有元宇宙虚拟世界,还有大模型加持的智…...

Solana 线下活动回顾|多方创新实践,引领 Solana“文艺复兴”新浪潮
Solana 作为在过去一年里实现突破式飞跃的头部公链,究竟是如何与 Web3 行业共振,带来全新的技术发展与生态亮点的呢?在 3 月 24 日刚结束的「TinTin Destination Moon」活动现场,来自 Solana 生态的的专家大咖和 Web3 行业的资深人…...

CSS3 实现文本与图片横向无限滚动动画
文章目录 1. 实现效果2.html结构3. css代码 1. 实现效果 gif录屏比较卡,实际很湿滑,因为是css动画实现的 2.html结构 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"…...

Android 性能优化之黑科技开道(一)
1. 缘起 在开发电视版智家 App9.0 项目的时候,发现了一个性能问题。电视系统原本剩余的可用资源就少,而随着 9.0 功能的进一步增多,特别是门铃、门锁、多路视频同屏监控后等功能的增加,开始出现了卡顿情况。 经过调研分析发现有…...

Successive Convex Approximation算法的学习笔记
文章目录 一、代码debug二、原理 本文主要参考了CSDN上的 另一篇文章,但规范了公式的推导过程和修缮了部分代码 一、代码debug 首先,我们将所有的代码放到MATLAB中,很快在命令行中出现了错误信息 很显然有问题,但是我不知道发生…...
IoT数采平台2:文档
IoT数采平台1:开篇IoT数采平台2:文档IoT数采平台3:功能IoT数采平台4:测试 【平台功能】 基础配置、 实时监控、 规则引擎、 告警列表、 系统配置 消息通知:Websocket 设备上线、设备下线、 数据变化、 告警信息、 实时…...

Vue监听器watch的基本用法
文章目录 1. 作用2. 格式3. 示例3.1 value 值为字符串3.2 value 值为函数3.3 value 值为对象 4. 与计算属性对比 1. 作用 监视数据变化,执行一些业务逻辑或异步操作。 2. 格式 监听器 watch 内部以 key :value 的形式定义,key 是 data 中的…...
MySQL UPDATE JOIN 根据一张表或多表来更新另一张表的数据
当使用MySQL时,经常需要根据一张表或多张表的数据来更新另一张表的数据。这种情况下,我们可以使用UPDATE语句结合JOIN操作来实现这一需求。本文将介绍MySQL中使用UPDATE JOIN的技术。 什么是UPDATE JOIN UPDATE JOIN是MySQL中一种结合UPDATE语句和JOIN…...
JS实现继承的方式ES6版
上一篇:JS实现继承的方式原生版 ES6的继承 主要是依赖extends关键字来实现继承,且继承的效果类似于寄生组合继承。 class Parent() { }class Child extends Parent {constructor(x, y, color) {super(x, y);this.color color;} }子类必须在construct…...

elementui 左侧或水平导航菜单栏与main区域联动
系列文章目录 一、elementui 导航菜单栏和Breadcrumb 面包屑关联 二、elementui 左侧导航菜单栏与main区域联动 三、elementui 中设置图片的高度并支持PC和手机自适应 四、elementui 实现一个固定位置的Pagination(分页)组件 文章目录 系列文章目录…...

YUNBEE云贝-技术分享:PostgreSQL分区表
引言 PostgreSQL作为一款高度可扩展的企业级关系型数据库管理系统,其内置的分区表功能在处理大规模数据场景中扮演着重要角色。本文将深入探讨PostgreSQL分区表的实现逻辑、详细实验过程,并辅以分区表相关的视图查询、分区表维护及优化案例,…...

5.2 通用代码,数组求和,拷贝数组,si配合di翻转数组
5.2 通用代码,数组求和,拷贝数组,si配合di翻转数组 1. 通用代码 通用代码类似于一个用汇编语言写程序的一个框架,也类似于c语言的头文件编写 assume cs:code,ds:data,ss:stack data segmentdata endsstack segmentstack endsco…...
Oracle23免费版简易安装攻略
installation-guide 1 安装 root用户下 wget https://yum.oracle.com/repo/OracleLinux/OL8/developer/x86_64/getPackage/oracle-database-preinstall-23c-1.0-1.el8.x86_64.rpm wget https://download.oracle.com/otn-pub/otn_software/db-free/oracle-database-free-23c-1…...
《论文阅读》一种基于反事实推理的会话情绪检测无训练去偏框架 EMNLP 2023
《论文阅读》一种基于反事实推理的会话情绪检测无训练去偏框架 EMNLP 2023 前言简介相关工作模型构架Basic ClassificationBias ExtractionUnbiased Inference实验结果前言 亲身阅读感受分享,细节画图解释,再也不用担心看不懂论文啦~ 无抄袭,无复制,纯手工敲击键盘~ 今天…...

C++初阶-list的底层
目录 1.std::list实现的所有代码 2.list的简单介绍 2.1实现list的类 2.2_list_iterator的实现 2.2.1_list_iterator实现的原因和好处 2.2.2_list_iterator实现 2.3_list_node的实现 2.3.1. 避免递归的模板依赖 2.3.2. 内存布局一致性 2.3.3. 类型安全的替代方案 2.3.…...

K8S认证|CKS题库+答案| 11. AppArmor
目录 11. AppArmor 免费获取并激活 CKA_v1.31_模拟系统 题目 开始操作: 1)、切换集群 2)、切换节点 3)、切换到 apparmor 的目录 4)、执行 apparmor 策略模块 5)、修改 pod 文件 6)、…...
在HarmonyOS ArkTS ArkUI-X 5.0及以上版本中,手势开发全攻略:
在 HarmonyOS 应用开发中,手势交互是连接用户与设备的核心纽带。ArkTS 框架提供了丰富的手势处理能力,既支持点击、长按、拖拽等基础单一手势的精细控制,也能通过多种绑定策略解决父子组件的手势竞争问题。本文将结合官方开发文档,…...
【git】把本地更改提交远程新分支feature_g
创建并切换新分支 git checkout -b feature_g 添加并提交更改 git add . git commit -m “实现图片上传功能” 推送到远程 git push -u origin feature_g...
OpenLayers 分屏对比(地图联动)
注:当前使用的是 ol 5.3.0 版本,天地图使用的key请到天地图官网申请,并替换为自己的key 地图分屏对比在WebGIS开发中是很常见的功能,和卷帘图层不一样的是,分屏对比是在各个地图中添加相同或者不同的图层进行对比查看。…...
Java 二维码
Java 二维码 **技术:**谷歌 ZXing 实现 首先添加依赖 <!-- 二维码依赖 --><dependency><groupId>com.google.zxing</groupId><artifactId>core</artifactId><version>3.5.1</version></dependency><de…...
站群服务器的应用场景都有哪些?
站群服务器主要是为了多个网站的托管和管理所设计的,可以通过集中管理和高效资源的分配,来支持多个独立的网站同时运行,让每一个网站都可以分配到独立的IP地址,避免出现IP关联的风险,用户还可以通过控制面板进行管理功…...

Linux nano命令的基本使用
参考资料 GNU nanoを使いこなすnano基础 目录 一. 简介二. 文件打开2.1 普通方式打开文件2.2 只读方式打开文件 三. 文件查看3.1 打开文件时,显示行号3.2 翻页查看 四. 文件编辑4.1 Ctrl K 复制 和 Ctrl U 粘贴4.2 Alt/Esc U 撤回 五. 文件保存与退出5.1 Ctrl …...
从面试角度回答Android中ContentProvider启动原理
Android中ContentProvider原理的面试角度解析,分为已启动和未启动两种场景: 一、ContentProvider已启动的情况 1. 核心流程 触发条件:当其他组件(如Activity、Service)通过ContentR…...
Python实现简单音频数据压缩与解压算法
Python实现简单音频数据压缩与解压算法 引言 在音频数据处理中,压缩算法是降低存储成本和传输效率的关键技术。Python作为一门灵活且功能强大的编程语言,提供了丰富的库和工具来实现音频数据的压缩与解压。本文将通过一个简单的音频数据压缩与解压算法…...