怎么做网站10步骤,seo技术介绍,重庆网站推广步骤,百度网站推广优化工具文章目录 #x1f343;前言#x1f38d;约定前后端交互接⼝#x1f340;服务器代码实现#x1f6a9;控制层#x1f6a9;业务层#x1f6a9;数据层 #x1f334;前端代码的修改⭕总结 #x1f343;前言
今天我们来实现修改图书模块
首先我们先来看一下#xff0c;需要… 文章目录 前言约定前后端交互接⼝服务器代码实现控制层业务层数据层 前端代码的修改⭕总结 前言
今天我们来实现修改图书模块
首先我们先来看一下需要达到的效果 点击修改页面会显示原有图书的信息 点击确认按钮后跳转回图书列表页相关修改会进行展示 约定前后端交互接⼝
根据我们的需求我们约定以下前后端交互的接口
我们总共需要两个接口
第一个接口我们需要访问后需要显⽰当前图书的信息
[请求]
/book/queryBookById?bookId25
[参数]
⽆ [响应]
{id: 25,bookName: 图书21,author: 作者2,count: 999,price: 222.00,publish: 出版社1,status: 2,statusCN: null,createTime: 2023-09-04T04:01:27.00000:00,updateTime: 2023-09-05T03:37:03.00000:00
}根据图书ID,获取当前图书的信息 第二个接口点击修改按钮,修改图书信息
[请求]
/book/updateBook
Content-Type: application/x-www-form-urlencoded; charsetUTF-8
[参数]
id1bookName图书1author作者1count23price36publish出版社1status1
[响应]//失败信息, 成功时返回空字符串我们约定,浏览器给服务器发送⼀个 /book/updateBook 这样的HTTP请求,form表单的形式来提交数据
服务器返回处理结果,返回 “” 表示添加图书成功,否则,返回失败信息.
服务器代码实现
依旧使用分层的思想进行实现
控制层 因为有两个接口所以我们需要两个方法来进行实现
首先我们需要根据前端传回来的id返回相应id的图书对象
代码实现如下
RequestMapping(/queryBookById)
public BookInfo queryBookById(Integer bookId){if (bookIdnull || bookId0){return new BookInfo();}BookInfo bookInfo bookService.queryBookById(bookId);return bookInfo;
}然后我们需要根据前端修改的后传回来的图书对象进行对数据库中的数据进行修改。
代码实现如下
RequestMapping(/updateBook)
public String updateBook(BookInfo bookInfo) {log.info(修改图书:{}, bookInfo);try {bookService.updateBook(bookInfo);return ;} catch (Exception e) {log.error(修改图书失败, e);return e.getMessage();}
}业务层 该层我们只需要创建相应的方法然后直接调用数据层代码进行操作即可操作简单。
代码实现如下
public BookInfo queryBookById(Integer bookId) {return bookInfoMapper.queryBookById(bookId);
}
public void updateBook(BookInfo bookInfo) {bookInfoMapper.updateBook(bookInfo);
}数据层 关于返回当前图书信息因为比较简单所以直接使用注解的方式返回即可。
代码实现如下
Select(select id, book_name, author, count, price, publish, status, create_time, update_time from book_info where id#{bookId} and status0)
BookInfo queryBookById(Integer bookId);关于修改的sql代码我们使用XML方式利用动态sql来进行实现
关于XML 实现增删改查 与 动态SQL 不了解的小伙伴可以看博主写的 【JavaEE进阶】 MyBatis使用XML实现增删改查 和 【JavaEE进阶】 MyBatis之动态SQL
配置XML路径如下
mybatis:mapper-locations: classpath:mapper/**Mapper.xml创建BookInfoMapper.xml⽂件 文件内容如下
?xml version1.0 encodingUTF-8?
!DOCTYPE mapper PUBLIC -//mybatis.org//DTD Mapper 3.0//ENhttp://mybatis.org/dtd/mybatis-3-mapper.dtd
mapper namespaceorg.example.library.mapper.BookInfoMapperupdate idupdateBookupdate book_infosetif testbookName!nullbook_name #{bookName},/ifif testauthor!nullauthor #{author},/ifif testprice!nullprice #{price},/ifif testcount!nullcount #{count},/ifif testpublish!nullpublish #{publish},/ifif teststatus!nullstatus #{status},/if/setwhere id #{id}/update
/mapper实现接口如下
Integer updateBook(BookInfo bookInfo);前端代码的修改
由于博主主攻后端所以这里前端代码直接给出不讲解。
代码修改部分如下
$.ajax({type:get,url: /book/queryBookByIdlocation.search,success:function(book){if(book!null){$(#bookId).val(book.id);$(#bookName).val(book.bookName);$(#bookAuthor).val(book.author);$(#bookStock).val(book.count);$(#bookPrice).val(book.price);$(#bookPublisher).val(book.publish);$(#bookStatus).val(book.status);}}
});
function update() {$.ajax({type: post,url: /book/updateBook,data: $(#updateBook).serialize(),success: function (result) {if (result) {location.href book_list.html} else {console.log(result);alert(修改失败:result);}},error: function (error) {console.log(error);}});
}⭕总结
关于《【JavaEE进阶】 图书管理系统开发日记——肆》就讲解到这儿感谢大家的支持欢迎各位留言交流以及批评指正如果文章对您有帮助或者觉得作者写的还不错可以点一下关注点赞收藏支持一下