文章目录

前言需求分析约定前后端交互接口实现服务器代码控制层业务层数据层

修改前端代码⭕总结

前言

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

需求分析

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

点击添加图书按钮,跳转以下界面 添加图书时,若有图书信息没有填写,则会返回错误信息 成功添加图书后跳转至图书列表页,并显示添加图书信息

约定前后端交互接口

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

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

参考阅读

评论可见,请评论后查看内容,谢谢!!!评论后请刷新页面。