【JavaEE进阶】 图书管理系统开发日记——伍

文章目录

  • 🎋前言
  • 🌲需求分析
  • 🎄约定前后端交互接口
  • 🌳实现服务器代码
    • 🚩控制层
    • 🚩业务层
    • 🚩数据层
  • 🍃修改前端代码
  • ⭕总结

🎋前言

这次我们来实现图书管理系统的增加图书模块。

🌲需求分析

我们先来看一下需要达到的效果。

  1. 点击添加图书按钮,跳转以下界面
    在这里插入图片描述
  2. 添加图书时,若有图书信息没有填写,则会返回错误信息
    在这里插入图片描述
  3. 成功添加图书后跳转至图书列表页,并显示添加图书信息
    在这里插入图片描述
    在这里插入图片描述

🎄约定前后端交互接口

根据以上需求,我们可以约定以下接口

[请求]
/book/addBook
Content-Type: application/x-www-form-urlencoded;charset=UTF-8
[参数]
bookName=图书1&author=作者1&count=23&price=36&publish=出版社1&status=1
[响应]
“” //失败信息, 成功时返回空字符串

我们约定,浏览器给服务器发送⼀个 /book/addBook 这样的HTTP请求,form表单的形式来提交数据服务器返回处理结果,返回""表⽰添加图书成功,否则,返回失败信息.

🌳实现服务器代码

服务器代码依旧采用分层设计的思想

🚩控制层

在这里插入图片描述
该层我们使用对象来接受from表单传回来的值。

并对传回来的值判断其合法性,若不合法返回"输⼊参数不合法, 请检查⼊参!"即可

合法则交给业务层进行处理,并进行异常处理。

代码实现如下:

@RequestMapping("/addBook")
public String addBook(BookInfo bookInfo) {log.info("添加图书:{}", bookInfo);if (!StringUtils.hasLength(bookInfo.getBookName())|| !StringUtils.hasLength(bookInfo.getAuthor())|| bookInfo.getCount()==null|| bookInfo.getPrice()==null|| !StringUtils.hasLength(bookInfo.getPublish())|| bookInfo.getStatus() ==null) {return "输⼊参数不合法, 请检查⼊参!";}try {bookService.addBook(bookInfo);return "";} catch (Exception e) {log.error("添加图书失败", e);return e.getMessage();}
}

🚩业务层

在这里插入图片描述
因为因为层代码较简单,直接调用数据层代码发回即可

代码实现如下:

public void addBook(BookInfo bookInfo) {   bookInfoMapper.insertBook(bookInfo);
}

🚩数据层

在这里插入图片描述
使用注解实现对数据库的操作即可

实现带代码如下:

@Insert("insert into book_info (book_name,author,count,price,publish,status) " +"values (#{bookName},#{author},#{count},#{price},#{publish},#{status})")
Integer insertBook(BookInfo bookInfo);

🍃修改前端代码

在这里插入图片描述

关于前端代码,我们只需要修改添加页代码即可。

代码修改部分如下:

function add() {$.ajax({type: "post",url: "/book/addBook",data: $("#addBook").serialize(),success: function (result) {if (result == "") {location.href = "book_list.html"} else {console.log(result);alert("添加失败:" + result);}},error: function (error) {console.log(error);}});
}

⭕总结

关于《【JavaEE进阶】 图书管理系统开发日记——伍》就讲解到这儿,感谢大家的支持,欢迎各位留言交流以及批评指正,如果文章对您有帮助或者觉得作者写的还不错可以点一下关注,点赞,收藏支持一下!

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

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

相关文章

一文学会yum源配置(联网/未联网)以及yum常用命令

1、yum源介绍 yum(Yellow dog Updater Modified的简称),yum的宗旨是自动化地升级,安装/移除rpm包,收集rpm包的相关信息,检查依赖性并自动提示用户解决。yum的关键之处是要有可靠的repository,顾…

超维机器人年终总结大事记回顾

2023年,对于超维机器人来说,是充满挑战和机遇的一年。在这一年里,我们攻坚克难,持续创新,深度聚焦智能巡检机器人的发展,加强合作伙伴关系,不断优化产品和服务,不断提升客户体验&…

华为配置接口二三层切换示例

配置接口二三层切换示例 组网图形 图1 配置非自协商模式下速率和双工模式组网图 二三层切换简介配置注意事项组网需求配置思路操作步骤配置文件 二三层切换简介 基于接口板的硬件构造,某些形态设备上接口只能作为二层以太网接口,某些形态设备上接口…

Java锁原理剖析

1.AQS——锁的底层支持 AbstractQueuedSynchronizer抽象同步队列简称AQS,它是实现同步器的基础组件,并发包中锁的底层就是使用AQS实现的。 如图所示,AQS是一个FIFO的双向队列,其内部通过节点head和tail记录队首和队尾元素,队列元…

ANN(MLP) 三种预测

目录 介绍: 一、Mlp for binary classification 数据: 模型: 预测: 二、Mlp for Multiclass Classification 数据: 模型: 预测: 三、MLP for Regression 数据: 模型&a…

山西电力市场日前价格预测【2024-02-04】

日前价格预测 预测说明: 如上图所示,预测明日(2024-02-04)山西电力市场全天平均日前电价为367.56元/MWh。其中,最高日前电价为441.08元/MWh,预计出现在18:30。最低日前电价为324.52元/MWh,预计…

2.4 假期作业

const char *p; 值不能变 const (char*) p; 值不能变 char *const p; 地址不能变 const char* const p; 地址和值都不能变 char const *p; 值不能变 (char *)const p; 地址不能变 char con…

‘begin_code.h‘ file not found 问题解决办法

/usr/include/x86_64-linux-gnu/SDL2/SDL_platform.h:179:10: fatal error: ‘begin_code.h’ file not found 问题解决办法 问题 在使用SDL2库时编译程序出现如下问题: 解决办法 在Google搜索未果后,考虑到对于头文件找不到问题,可以通…

推荐系统|概要03_AB测试

文章目录 A/B测试问题流量不够用解决方案——分层实验 Holdout 机制 A/B测试 其中小流量是指对部分的用户先尝试改进的算法模型,而非全部。若为全部,如果算法模型存在问题,可能会导致用户体验差,导致用户流失,而小流量…

SpringCloud + Nacos环境下抽取Feign独立模块并支持MultipartFile

文章目录 一、前提条件和背景1. 前提2. 背景 二、Feign模块1. 依赖引入2. application.yaml配置3. 扩展支持MultipartFile4. 将media-api注册到feign 三、Media模块四、Content模块1. 引入依赖2. 启用FeignClient3. 测试 五、需要澄清的几点 一、前提条件和背景 1. 前提 已经…

【git】本地项目推送到github、合并分支的使用

1. github上创建仓库信息 点击个人头像,选择【你的仓库】 点击【新增】 填写仓库信息 2. 本地项目执行的操作 1.生成本地的git管理 (会生成一个.git的文件夹) git init 2.正常提交到暂存区,并填写提交消息 git add . git commit -m "init…

架构设计特训

一、考点分布 软件架构风格(※※※※)层次型软件架构风格(※※※※)面向服务的软件架构风格(※※※※)云原生架构风格(※※※※)质量属性与架构评估(※※※※※&#xff…