当前位置: 首页 > article >正文

【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.kler.cn/a/227886.html

相关文章:

  • vue框架技术相关概述以及前端框架整合
  • 适配器模式
  • Origami Agents:AI驱动的销售研究工具,助力B2B销售团队高效增长
  • 实战技巧:如何快速提高网站的收录比例?
  • Visual Studio Code修改terminal字体
  • unity实现回旋镖函数
  • Flink与Redis集成:自定义连接器实现维表创建与数据汇入
  • 牛客网-------------------------长方体
  • Oracle出现超出打开游标最大数的解决方法
  • 中科大计网学习记录笔记(五):协议层次和服务模型
  • Redis的过期键的删除策略
  • Linux权限【超详细】
  • ubuntu22.04 VMware17.5
  • C++ STL库详解:容器适配器stack和queue的结构及功能
  • MySQL 基础
  • 实习记录——第十天
  • Linux下tar命令详解
  • 【日常总结 - java】list 与 字符串(用逗号隔开)相互转换
  • 如何对项目中的图片进行优化以及常见图片格式
  • vue3使用is动态切换组件报错Vue received a Component which was made a reactive object.
  • 【内置对象·js】
  • 从编程中理解:退一步海阔天空
  • Swift 入门之自定义类型的模式匹配(Pattern Matching)
  • 聊聊ClickHouse MergeTree引擎的固定/自适应索引粒度
  • Django模型(五)
  • Stable Diffusion 模型下载:EnvyHyperrealXL01