SSM图书管理系统开发mysql数据库web结构java编程计算机网页源码eclipse项目

news2024/11/24 9:56:56

一、源码特点
  SSM 图书管理系统是一套完善的信息系统,结合springboot框架和bootstrap完成本系统,对理解JSP java编程开发语言有帮助系统采用SSM框架(MVC模式开发),系统具有完整的源代码和
数据库,系统主要采用B/S模式开发。

ssm图书管理系统


前段主要技术 bootstrap.css jquery
后端主要技术 SSM
数据库 mysql
开发工具 eclipse  JDK1.8 TOMCAT 8.5

二、功能介绍
本系统模块实现功能如下:
前台功能:

首页浏览
图书浏览
公告浏览
图书借阅、查看借阅信息
用户信息注册、登录、个人信息修改
后台功能:
(1)用户管理:对用户信息进行添加、删除、修改和查看
(2)管理员管理:对管理员信息进行添加、删除、修改和查看
(3)图书分类管理:对图书分类信息进行添加、删除、修改和查看
(4)图书管理:对图书信息进行添加、删除、修改和查看
(5)借阅管理:对借阅信息进行删除、修改和查看
(6)消息管理:对消息信息进行删除、修改和查看
(7)公告管理:对公告信息进行添加、删除、修改和查看
(8)个人信息修改、登录

数据库设计

	CREATE TABLE `yonghu` (
	`yhid` 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 '联系地址',
	`zt` VARCHAR(40) default NULL COMMENT '状态',  PRIMARY KEY  (`yhid`)
	) ENGINE=InnoDB DEFAULT CHARSET=gb2312;
	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 `tsfl` (
	`tsflid` int(11) NOT NULL auto_increment,
	`fl` VARCHAR(40) default NULL COMMENT '分类',
	`zt` VARCHAR(40) default NULL COMMENT '状态',  PRIMARY KEY  (`tsflid`)
	) ENGINE=InnoDB DEFAULT CHARSET=gb2312;
	CREATE TABLE `tushu` (
	`tsid` int(11) NOT NULL auto_increment,
	`tsmc` VARCHAR(40) default NULL COMMENT '图书名称',
	`fl` VARCHAR(40) default NULL COMMENT '分类',
	`js` VARCHAR(40) default NULL COMMENT '介绍',
	`zt` VARCHAR(40) default NULL COMMENT '状态',
	`tp` VARCHAR(40) default NULL COMMENT '图片',
	`sm` VARCHAR(40) default NULL COMMENT '说明',
	`jyts` VARCHAR(40) default NULL COMMENT '借阅天数',  PRIMARY KEY  (`tsid`)
	) ENGINE=InnoDB DEFAULT CHARSET=gb2312;
	CREATE TABLE `jieyue` (
	`jyid` int(11) NOT NULL auto_increment,
	`ls` VARCHAR(40) default NULL COMMENT '流水',
	`ts` VARCHAR(40) default NULL COMMENT '图书',
	`yh` VARCHAR(40) default NULL COMMENT '用户',
	`jysj` VARCHAR(40) default NULL COMMENT '借阅时间',
	`ghsj` VARCHAR(40) default NULL COMMENT '归还时间',
	`zt` VARCHAR(40) default NULL COMMENT '状态',  PRIMARY KEY  (`jyid`)
	) ENGINE=InnoDB DEFAULT CHARSET=gb2312;
	CREATE TABLE `xiaoxi` (
	`xxid` int(11) NOT NULL auto_increment,
	`bt` VARCHAR(40) default NULL COMMENT '标题',
	`nr` VARCHAR(40) default NULL COMMENT '内容',
	`fbsj` VARCHAR(40) default NULL COMMENT '发布时间',
	`jsyh` VARCHAR(40) default NULL COMMENT '接收用户',  PRIMARY KEY  (`xxid`)
	) 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;
	

控制类

 */

	@Resource gonggaoDao gonggaodao;
	@RequestMapping(value="/addPage")
	public String addPage(gonggao gonggao,HttpServletRequest request){
		Map<String,Object> map= new HashMap<String,Object>();
		
		System.out.println("addPageok");
		return "gonggao/gonggaoadd";
	}
	
	@RequestMapping(value="/add")
	public String add(gonggao gonggao,HttpServletRequest request){
		Map<String,Object> map= new HashMap<String,Object>();
		//String name=(String)request.getParameter("name");

		map.put("ggid", gonggao.getGgid());//公告编号

		map.put("bt", gonggao.getBt());//标题

		map.put("nr", gonggao.getNr());//内容

		map.put("fbsj", gonggao.getFbsj());//发布时间



		String ggid=(String)gonggao.getGgid();//公告编号

		String bt=(String)gonggao.getBt();//标题

		String nr=(String)gonggao.getNr();//内容

		String fbsj=(String)gonggao.getFbsj();//发布时间

		gonggaodao.save(map);
		
		
		request.setAttribute("msg", "<script>alert('添加成功');</script>");
		System.out.println("addok");
		return "gonggao/gonggaoadd";
	}
	
	/**删除 
	 * 
	 */
	@RequestMapping(value="/del")
	public String  del(Integer id,HttpServletRequest request,Map<String,Object> map){
	//	Map<String,Object> map= new HashMap<String,Object>();
		String a=(String)request.getParameter("keyid");
		id=Integer.parseInt(a);
		request.setAttribute("msg", "<script>alert('删除成功');</script>");
		gonggaodao.del(id);
		return selectall(null,map,request);
	}
	/**
	 * 修改gonggao信息
	 */
	@RequestMapping(value="/update")
	public String update(gonggao gonggao,HttpServletRequest request,Map<String,Object> map1){
		Map<String,Object> map= new HashMap<String,Object>();
		map.put("ggid", gonggao.getGgid());//公告编号

		map.put("bt", gonggao.getBt());//标题

		map.put("nr", gonggao.getNr());//内容

		map.put("fbsj", gonggao.getFbsj());//发布时间



		String ggid=(String)gonggao.getGgid();//公告编号

		String bt=(String)gonggao.getBt();//标题

		String nr=(String)gonggao.getNr();//内容

		String fbsj=(String)gonggao.getFbsj();//发布时间

		request.setAttribute("msg", "<script>alert('修改成功');</script>");
		gonggaodao.update(map);
		return selectall(null,map1,request);
	}
	/**
	 * 查询gonggao信息
	 */
	@RequestMapping(value="/modify")
	public String modify(Integer id,Map<String,Object> map,HttpServletRequest request){
		String keyid=(String)request.getParameter("keyid");
		List<Map<String,Object>> list= new  ArrayList<Map<String,Object>>();
		list=gonggaodao.select(Integer.parseInt(keyid));
		request.setAttribute("ggid", list.get(0).get("ggid"));//公告编号

		request.setAttribute("bt", list.get(0).get("bt"));//标题

		request.setAttribute("nr", list.get(0).get("nr"));//内容

		request.setAttribute("fbsj", list.get(0).get("fbsj"));//发布时间

		
		return "gonggao/gonggaomodify";
	}
	
	@RequestMapping(value="/detail")
	public String detail(Integer id,Map<String,Object> map,HttpServletRequest request){
		String keyid=(String)request.getParameter("keyid");
		List<Map<String,Object>> list= new  ArrayList<Map<String,Object>>();
		list=gonggaodao.select(Integer.parseInt(keyid));
		request.setAttribute("ggid", list.get(0).get("ggid"));//公告编号

		request.setAttribute("bt", list.get(0).get("bt"));//标题

		request.setAttribute("nr", list.get(0).get("nr"));//内容

		request.setAttribute("fbsj", list.get(0).get("fbsj"));//发布时间

		return "gonggao/gonggaodetail";
	}
	
	/**
	 * 查询gonggao信息
	 */
	@RequestMapping(value="/selectall")
	public String selectall(Integer id,Map<String,Object> map,HttpServletRequest request){
		List<Map<String,Object>> list= new  ArrayList<Map<String,Object>>();
	Map<String,Object> map1= new HashMap<String,Object>();

	String ggid=(String)request.getParameter("ggid");//公告编号
	if(ggid!=null&&!ggid.equals("")){
	map1.put("ggid",ggid);//公告编号
	}
	String bt=(String)request.getParameter("bt");//标题
	if(bt!=null&&!bt.equals("")){
	map1.put("bt",bt);//标题
	}
	String nr=(String)request.getParameter("nr");//内容

mybatis

<!-- 添加用户信息 -->
<insert id="insertgonggao"  parameterType="java.util.Map">
 insert  into  gonggao(bt,nr,fbsj)  values(#{bt},#{nr},#{fbsj})
</insert>

<delete id="delgonggao" parameterType="int">
 delete  from  gonggao where ggid=#{ggid}
</delete>

<update id="updategonggao" parameterType="java.util.Map">
update gonggao set bt=#{bt},nr=#{nr},fbsj=#{fbsj} where ggid=#{ggid}
</update>

<!--  查询返回的是 list<map> -->
<!-- resultType 就是返回查询结果的类型,而如果是resultMap=则返回的就是你定义的javabean  -->
<select  id="selectgonggao"  parameterType="int" resultType="java.util.Map">
  select  * from gonggao where ggid=#{ggid}
</select>

<!-- resultType 就是返回查询结果的类型,而如果是resultMap=则返回的就是你定义的javabean  -->
<select  id="selectall"  parameterType="java.util.Map" resultType="java.util.Map">
  select  * from gonggao where 1=1
        <if test=" null != bt and bt!=''" >
        and bt like concat(concat('%',#{bt}),'%')
        </if>
        <if test=" null != nr and nr!=''" >
        and nr like concat(concat('%',#{nr}),'%')
        </if>
        <if test=" null != fbsj and fbsj!=''" >
        and fbsj like concat(concat('%',#{fbsj}),'%')
        </if>

</select>

三、注意事项
1、管理员账号:admin密码:admin 数据库配置文件DBO.java
2、开发环境为eclipse开发,数据库为mysql,使用java语言开发。
3、数据库文件名是jspssmbook.sql 系统名称ssmbook
4、地址:http://127.0.0.1:8080/ssmbook/qt/index.jsp

四 系统实现

源码获取 下方联系卡片↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

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

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

相关文章

模拟ASP.NET Core MVC设计与实现

前几天有人在我的《ASP.NET Core框架揭秘》读者群跟我留言说&#xff1a;“我最近在看ASP.NET Core MVC的源代码&#xff0c;发现整个系统太复杂&#xff0c;涉及的东西太多&#xff0c;完全找不到方向&#xff0c;你能不能按照《200行代码&#xff0c;7个对象——让你了解ASP.…

Hive 知识点八股文记录 ——(一)特性

Hive通俗的特性 结构化数据文件变为数据库表sql查询功能sql语句转化为MR运行建立在hadoop的数据仓库基础架构使用hadoop的HDFS存储文件实时性较差&#xff08;应用于海量数据&#xff09;存储、计算能力容易拓展&#xff08;源于Hadoop&#xff09; 支持这些特性的架构 CLI&…

Annotation Processor

Annotation Processor Processor处理约定 JavaC编译环境获取当前的源文件及类文件&#xff0c; 建立多轮次的处理过程。每一次轮次的处理结果将作为下一轮的输入。当某一轮处理完成后没有产生新的源文件或类文件&#xff0c;触发最后一轮。Processors 通过getSupportedAnnotat…

“位不配财”?程序员兼职,稳妥挣钱才是王道!

一、配不上 戏称程序员为“码农”&#xff0c;一年到头&#xff0c;像那地里的老黄牛和勤勤恳恳的老农民。 又像极了那工地上的农民工&#xff0c;天天搬砖&#xff0c;苦得嘞。 作为推动时代进步的得力干将&#xff0c;工作量自然是不容小觑。说程序员不加班都没人信&#x…

【前段基础入门之】=>CSS3新特性 文本多列 布局

概述&#xff1a; 作用&#xff1a;专门用于实现类似于报纸的布局。属于是一行文本多列布局 属性/值描述column-count 指定列数&#xff0c;值是数字。column-width指定列宽&#xff0c;值是长度单位columns同时指定列宽和列数&#xff0c;复合属性&#xff1b;值没有数量和顺序…

2023年眼镜行业分析(京东眼镜销量数据分析):市场规模同比增长26%,消费需求持续释放

随着我国经济的不断发展&#xff0c;电子产品不断普及&#xff0c;低龄及老龄人口的用眼场景不断增多&#xff0c;不同年龄阶段的人群有不同的视力问题&#xff0c;因此&#xff0c;视力问题人口基数也随之不断加大&#xff0c;由此佩戴眼镜的人群也不断增多。 同时&#xff0c…

Unreal Engine 学习笔记 (3)—— 导入资源

1.导入FBX文件 打开系统文件管理器按下鼠标左键拖动fbx文件到UE编辑器中松开鼠标左键在弹出对话框FBX导入选项页面中&#xff0c;选择对应的骨骼 重定向骨骼 拖动UE4的walk_strafe_back.fbx文件到UE5编辑器中 在弹出的FBX导入选项对话框中选择UE4对应的骨骼 使用重定向资产…

软文推广中如何搭建媒体矩阵

媒体矩阵简单理解就是在不同的媒体平台上&#xff0c;根据运营目标和需求&#xff0c;建立起全面系统的媒体布局&#xff0c;进行多平台同步运营。接下来媒介盒子就来和大家聊聊&#xff0c;企业在软文推广过程中为什么需要搭建媒体矩阵&#xff0c;又该如何搭建媒体矩阵。 一、…

el-table实现单选和隐藏全选框和回显数据

0 效果 1 单选 <el-table ref"clientTableRef" selection-change"clientChangeHandle"><el-table-column fixed type"selection" width"50" align"center" /><el-table-column label"客户名称" a…

Spring Boot中配置多个数据源

配置数据源实际上就是配置多个数据库&#xff0c;在一个配置文件中配置多个数据库&#xff0c;这样做主要的好处有以下几点&#xff1a; 数据库隔离&#xff1a;通过配置多个数据源&#xff0c;可以将不同的业务数据存储在不同的数据库中&#xff0c;实现数据的隔离。这样可以…

第四章:人工智能深度学习教程-激活函数(第四节-深入理解激活函数)

什么是激活函数&#xff1f; 在人工神经网络中&#xff0c;节点的激活函数定义了该节点或神经元对于给定输入或一组输入的输出。然后将该输出用作下一个节点的输入&#xff0c;依此类推&#xff0c;直到找到原始问题的所需解决方案。 它将结果值映射到所需的范围&#xff0c;例…

渲染管线详解

光栅化的渲染管线一般分为三大阶段&#xff1a;应用程序阶段->几何阶段->光栅化阶段 也可以四大阶段&#xff1a; 应用程序阶段->几何阶段->光栅化阶段->逐片元操作阶段 更详细的流程如下&#xff1a; Vertex Specification&#xff08;顶点规范化&#xff09…

GPTZero:论文打假神器

记住这张脸他是全美学生的公敌。 别的学生在AI大浪潮间翻云覆雨&#xff0c;有的用GPT代写作业&#xff0c;有的用GPT代工论文&#xff0c;大家都忙的不亦乐乎。 正在大家都在欢呼雀跃跟作业拜拜时&#xff0c;就是这个小伙&#xff0c;普林斯顿大学的华裔小天才Edward Tian…

Git入门---简介,常用命令

&#x1f3ac; 艳艳耶✌️&#xff1a;个人主页 &#x1f525; 个人专栏 &#xff1a;《Spring与Mybatis集成整合》《Vue.js使用》 ⛺️ 越努力 &#xff0c;越幸运。 1.Git 的简介 1.1. 介绍 Git是一个开源的分布式版本控制系统&#xff0c;最初由Linus Torvalds于2005年创…

Adobe Illustrator 2021 下载及安装教程

目录 下载地址&#xff1a; 安装教程&#xff1a; 下载地址&#xff1a; Adobe Illustrator 2021安装包 链接&#xff1a;https://pan.baidu.com/s/1UIzjbS5pRuL7Zpt9RrU5lQ 提取码&#xff1a;lxwj 安装教程&#xff1a; 1、下载压缩包,解压文件 2、双击Set_up.exe&#…

数据分析实战 | 线性回归——女性身高与体重数据分析

目录 一、数据集及分析对象 二、目的及分析任务 三、方法及工具 四、数据读入 五、数据理解 六、数据准备 七、模型训练 八、模型评价 九、模型调参 十、模型预测 实现回归分析类算法的Python第三方工具包比较常用的有statsmodels、statistics、scikit-learn等&#…

刚接触银行新业务测试的一些问题

在银行金融领域的测试工作&#xff0c;相信很多测试工程师都会遇到自己不熟悉的业务。然后开始看文档&#xff0c;问开发或者需求人员。搞懂了大概的流程&#xff0c;然后开始进行测试。 不过遇到复杂的业务情况时&#xff0c;真的很需要时间去梳理。而且测试环境的配置问题、不…

ruoyi前后端分离版本开发框架解读---让你快速入门

后端结构 com.ruoyi ├── common // 工具类 │ └── annotation // 自定义注解 │ └── config // 全局配置 │ └── constant // 通用常量 │ └── core …

【Linux】第十四站:进程优先级

文章目录 一、Linux内核怎么设计各种结构二、进程优先级1.基本概念2.是什么3.为什么要有优先级4.批量化注释操作5.查看优先级6.PRI and NI 三、位图与优先级 一、Linux内核怎么设计各种结构 我们前面所写的数据结构都是比较单纯的。 而linux中就比较复杂了&#xff0c;同一个…