题目: javaWeb学院图书借阅系统(附源码链接免费下载)

简介: 题目: javaWeb学院图书借阅系统(附源码链接免费下载)

一、 语言和环境 语言和环境

1. 实现语言:JAVA 语言。

2. 环境要求:MyEclipse/Eclipse + Tomcat + MySql。

3. 使用技术:Jsp+Servlet+JavaBean+Jdbc 或 Jsp+Servlet+JavaBean+Mybatis。

4. 功能要求: 不得 使用第三方工具生成实体类、持久层代码,否则不得分 。


二、 实现功能 实现功能

随着学院图书馆书籍日与俱增,传统的管理方式已经无法更加方便、快捷、高效地管理学生借书、还书

等需求,现需要开发一套 B/S 结构的图书借阅系统,包含图书的查询、新增、借阅功能,具体实现如下:

1. 首页默认显示所有图书信息,默认要求按照书名排序,如图 1 所示。

(1)按书名排列。

(2)如果该书籍已经被借出,则显示为灰色背景,同时最后无“借阅”操作链接,如果未被借出,则显

示无背景色,同时最后一栏显示“借阅”超链接。

(3)图书状态需要根据状态标识显示“已借出”和“未借出”字样,而不是 0 和 1。


image.png


2. 点击“添加图书”链接,跳转至新增图书表单界面,如图 2 所示。

(1)书名、作者、价格不能为空,出版社可以为空。

(2)添加日期默认获取当前系统时间。

(3)添加时状态默认为 0,表示“未借出”。

3. 管理员输入图书基本信息后,点击“保存图书”按钮,要求对表单进行非空验证,其中包括书名、作者,价格,填入这三项必填信息后才能提交,如图 3 所示。



image.png


image.png

4. 用户输入完整信息提交以后,要求自动跳转至列表界面,此时列表界面显示新增的图书信息(按名称排序,且新增的图书状态应该是“未借出”),如图 4 所示。


image.png


5. 用户点击图书列表界面中的“借阅”超链接,弹出提示“您确认借阅该图书?”,如图 5 所示,点击确定后执行借阅操作,然后列表将进行自动刷新,此时借阅的图书状态变更为“已借出”且带有灰色背景色,如图 6 所示。


image.png

image.png


三、 数据库设计 数据库设计

1. 创建数据库(library_db)。

2. 创建数据表(tb_book),结构如下。


image.png

DROP TABLE IF EXISTS `tb_book`;
CREATE TABLE `tb_book`  (
  `book_id` int(8) NOT NULL AUTO_INCREMENT,
  `book_name` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `book_author` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `book_price` float(10, 2) NOT NULL,
  `book_publisher` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `book_state` int(8) NOT NULL,
  `add_time` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  PRIMARY KEY (`book_id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 5 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact;
INSERT INTO `tb_book` VALUES (1, '对数学思想的基础研究', '某人', 57.00, '人民出版社', 0, '2022-12-20 08:04:28');
INSERT INTO `tb_book` VALUES (2, '对思想与方法的基本研究', 'R-柯朗', 66.00, '复旦大学出版社', 1, '2022-13-20 08:04:13');
INSERT INTO `tb_book` VALUES (3, '红楼梦', '高鹗', 125.00, '现代出版社', 0, '2022-13-20 08:04:37');
INSERT INTO `tb_book` VALUES (4, '皇后大道东', '咪蒙', 69.00, '湾仔出版社', 0, '2022-14-20 08:04:12');


四、 具体要求及推荐实现步骤 具体要求及推荐实现步骤

1.P JSP 版本 的实现步骤 如下:

(1)按以上数据库要求建库、建表,并添加测试数据(不少于 5 条,测试数据不需要和上图一致)。

(2)创建 Web 工程并创建各个包,导入工程所需的 jar 文件(数据库驱动)。

(3)创建 Book 实体类。

(4)创建 Servlet 获取用户不同的请求,并将这些请求转发至业务处理层相应的业务方法。

(5)创建业务处理层,在其中定义业务方法,实现系统需求,在这些业务方法中需要执行 DAO 方法。

(6)创建 BaseDAO 工具类,使用 JDBC 完成数据表数据的查询、添加、借阅的功能方法代码。

(7)编写 JSP 页面,展示数据的查询结果。


五、 评分标准


image.png

image.png


下载链接:


https://download.csdn.net/download/feng8403000/85128149


相关文章
|
20天前
|
XML Java 编译器
Java注解的底层源码剖析与技术认识
Java注解(Annotation)是Java 5引入的一种新特性,它提供了一种在代码中添加元数据(Metadata)的方式。注解本身并不是代码的一部分,它们不会直接影响代码的执行,但可以在编译、类加载和运行时被读取和处理。注解为开发者提供了一种以非侵入性的方式为代码提供额外信息的手段,这些信息可以用于生成文档、编译时检查、运行时处理等。
57 7
|
1月前
|
数据采集 人工智能 Java
Java产科专科电子病历系统源码
产科专科电子病历系统,全结构化设计,实现产科专科电子病历与院内HIS、LIS、PACS信息系统、区域妇幼信息平台的三级互联互通,系统由门诊系统、住院系统、数据统计模块三部分组成,它管理了孕妇从怀孕开始到生产结束42天一系列医院保健服务信息。
31 4
|
12天前
|
存储 JavaScript 前端开发
基于 SpringBoot 和 Vue 开发校园点餐订餐外卖跑腿Java源码
一个非常实用的校园外卖系统,基于 SpringBoot 和 Vue 的开发。这一系统源于黑马的外卖案例项目 经过站长的进一步改进和优化,提供了更丰富的功能和更高的可用性。 这个项目的架构设计非常有趣。虽然它采用了SpringBoot和Vue的组合,但并不是一个完全分离的项目。 前端视图通过JS的方式引入了Vue和Element UI,既能利用Vue的快速开发优势,
71 13
|
25天前
|
缓存 监控 Java
Java线程池提交任务流程底层源码与源码解析
【11月更文挑战第30天】嘿,各位技术爱好者们,今天咱们来聊聊Java线程池提交任务的底层源码与源码解析。作为一个资深的Java开发者,我相信你一定对线程池并不陌生。线程池作为并发编程中的一大利器,其重要性不言而喻。今天,我将以对话的方式,带你一步步深入线程池的奥秘,从概述到功能点,再到背景和业务点,最后到底层原理和示例,让你对线程池有一个全新的认识。
53 12
|
20天前
|
JavaScript 安全 Java
java版药品不良反应智能监测系统源码,采用SpringBoot、Vue、MySQL技术开发
基于B/S架构,采用Java、SpringBoot、Vue、MySQL等技术自主研发的ADR智能监测系统,适用于三甲医院,支持二次开发。该系统能自动监测全院患者药物不良反应,通过移动端和PC端实时反馈,提升用药安全。系统涵盖规则管理、监测报告、系统管理三大模块,确保精准、高效地处理ADR事件。
|
25天前
|
设计模式 消息中间件 搜索推荐
Java 设计模式——观察者模式:从优衣库不使用新疆棉事件看系统的动态响应
【11月更文挑战第17天】观察者模式是一种行为设计模式,定义了一对多的依赖关系,使多个观察者对象能直接监听并响应某一主题对象的状态变化。本文介绍了观察者模式的基本概念、商业系统中的应用实例,如优衣库事件中各相关方的动态响应,以及模式的优势和实际系统设计中的应用建议,包括事件驱动架构和消息队列的使用。
|
22天前
|
人工智能 移动开发 安全
家政上门系统用户端、阿姨端源码,java家政管理平台源码
家政上门系统基于互联网技术,整合大数据分析、AI算法和现代通信技术,提供便捷高效的家政服务。涵盖保洁、月嫂、烹饪等多元化服务,支持多终端访问,具备智能匹配、在线支付、订单管理等功能,确保服务透明、安全,适用于家庭生活的各种需求场景,推动家政市场规范化发展。
java中获取当前系统日期
java中获取当前系统日期
JAVA 获取系统日期时间
JAVA 获取系统日期时间
308 0
|
Java 应用服务中间件
JAVA 取系统当前日期 少8个小时
        Date now = new Date();          DateFormat data = newjava.text.
828 0