老师,我的删除功能有问题

来源:6-7 实现图书删除功能

慕仰7036876

2020-11-27 11:58:08

# 具体遇到的问题
我的删除功能一切正常,但就是不删除,也显示删除成功,也打了断点,后台确实在运行。但是刷新页面之后就是删不了,数据库还是删不了,不知道为什么
# 报错信息的截图
http://img.mukewang.com/climg/5fc0788b0967e63517420881.jpg

# 相关课程内容截图

# 尝试过的解决思路和结果

# 粘贴全部相关代码,切记添加代码注释(请勿截图)

在这里输入代码,可通过选择【代码语言】突出显示

package com.hugong.reader.service.impl;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.hugong.reader.entity.Book;
import com.hugong.reader.entity.Evaluation;
import com.hugong.reader.entity.MemberReadState;
import com.hugong.reader.mapper.BookMapper;
import com.hugong.reader.mapper.EvaluationMapper;
import com.hugong.reader.mapper.MemberReadStateMapper;
import com.hugong.reader.service.BookService;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;

import javax.annotation.Resource;

@Service("bookService")
@Transactional(propagation = Propagation.NOT_SUPPORTED, readOnly = true)
public class BookServiceImpl implements BookService {
    @Resource
    private BookMapper bookMapper;
    @Resource
    private BookService bookService;
    @Resource
    private MemberReadStateMapper memberReadStateMapper;
    @Resource
    private EvaluationMapper evaluationMapper;
    //此为接口实现类
    public IPage<Book> paging(Long categoryId, String order, Integer page, Integer rows) {
        Page<Book> p = new Page<Book>(page, rows);
        QueryWrapper<Book> queryWrapper = new QueryWrapper<Book>();
        if(categoryId != null && categoryId != -1){
            queryWrapper.eq("category_id", categoryId);
        }
        if(order != null){
            if(order.equals("quantity")){
                queryWrapper.orderByDesc("evaluation_quantity");
            }else if(order.equals("score")){
                queryWrapper.orderByDesc("evaluation_score");
            }
        }
        IPage<Book> pageObject = bookMapper.selectPage(p, queryWrapper);
        return pageObject;
    }

    /**
     * 根据图书编号查询图书对象
     * @param bookId 图书编号
     * @return 图书对象
     */
    public Book selectById(Long bookId){
        Book book = bookMapper.selectById(bookId);
        return book;
    }

    /**
     * 更新图书评价/评价数量
     */
    @Transactional
    public void updateEvaluation() {
        bookMapper.updateEvaluation();

    }

    /**
     *
     * @param book
     * @return
     */
    @Transactional
    public Book createBook(Book book) {
        bookMapper.insert(book);
        return book;
    }

    /**
     * 更新图书
     * @param book 新图书数据
     * @return 更新后的数据
     */
    @Transactional
    public Book updateBook(Book book) {
        bookMapper.updateById(book);
        return book;
    }

    /**
     * 删除图书及相关数据
     * @param bookId 图书编号
     */
    @Transactional
    public void deleteBook(Long bookId) {
        Book book = bookMapper.selectById(bookId);
        QueryWrapper<MemberReadState> mrsQueryWrapper = new QueryWrapper<MemberReadState>();
        mrsQueryWrapper.eq("book_id", bookId);
        memberReadStateMapper.delete(mrsQueryWrapper);
        QueryWrapper<Evaluation> evaluationQueryWrapper = new QueryWrapper<Evaluation>();
        evaluationQueryWrapper.eq("book_id", bookId);
        evaluationMapper.delete(evaluationQueryWrapper);
    }

}
package com.hugong.reader.controller.management;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.hugong.reader.entity.Book;
import com.hugong.reader.service.BookService;
import com.hugong.reader.service.exception.BussinessException;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.servlet.ModelAndView;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.io.File;
import java.io.IOException;
import java.net.URLDecoder;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;

@Controller
@RequestMapping("/management/book")
public class MBookController {
    @Resource
    private BookService bookService;

    @GetMapping("/index.html")
    public ModelAndView showBook() {
        return new ModelAndView("/management/book");
    }

    /**
     * wangEditor文件上传
     *
     * @param file    上传文件
     * @param request 原生请求对象
     * @return
     * @throws IOException
     */
    @PostMapping("/upload")
    @ResponseBody
    public Map upload(@RequestParam("img") MultipartFile file, HttpServletRequest request) throws IOException {
        //得到上传目录
        String uploadPath = request.getServletContext().getResource("/").getPath() + "/upload/";
        uploadPath = URLDecoder.decode(uploadPath, "utf-8");
        //文件名
        String fileName = new SimpleDateFormat("yyyyMMddHHmmssSSS").format(new Date());
        //扩展名
        String suffix = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf("."));
        //保存文件到upload目录
        file.transferTo(new File(uploadPath + fileName + suffix));
        Map result = new HashMap();
        result.put("errno", 0);
        result.put("data", new String[]{"/upload/" + fileName + suffix});
        return result;
    }

    @PostMapping("/create")
    @ResponseBody
    public Map create(Book book) {
        Map result = new HashMap();
        try {
            book.setEvaluationQuantity(0);
            book.setEvaluationScore(0f);
            Document doc = Jsoup.parse(book.getDescription());
            Element img = doc.select("img").first();//获取到图书详情第一图的元素对象
            String cover = img.attr("src");
            book.setCover(cover);
            bookService.createBook(book);
            result.put("code", 0);
            result.put("mag", "success");
        } catch (BussinessException ex) {
            ex.printStackTrace();
            result.put("code", ex.getCode());
            result.put("msg", ex.getMsg());
        }
        return result;
    }

    @GetMapping("/list")
    @ResponseBody
    public Map list(Integer page, Integer limit) {
        if (page == null) {
            page = 1;
        }
        if (limit == null) {
            limit = 10;
        }

        IPage<Book> pageObject = bookService.paging(null, null, page, limit);
        Map result = new HashMap();
        result.put("code", 0);
        result.put("msg", "success");
        result.put("data", pageObject.getRecords());//当前页面数据
        result.put("count", pageObject.getTotal());//未分页时总共有多少行
        return result;
    }

    @GetMapping("/id/{id}")
    @ResponseBody
    public Map selectById(@PathVariable("id") Long bookId) {
        Book book = bookService.selectById(bookId);
        Map result = new HashMap();
        result.put("code", 0);
        result.put("msg", "success");
        result.put("data", book);
        return result;
    }

    /**
     * 更新图书
     * @param book 新图书数据
     * @return 以json形式返回的数据
     */
    @PostMapping("/update")
    @ResponseBody
    public Map updateBook(Book book) {
        Map result = new HashMap();
        try {
            Book rawBook = bookService.selectById(book.getBookId());
            rawBook.setBookName(book.getBookName());
            rawBook.setSubTitle(book.getSubTitle());
            rawBook.setAuthor(book.getAuthor());
            rawBook.setCategoryId(book.getCategoryId());
            rawBook.setDescription(book.getDescription());
            Document doc = Jsoup.parse(book.getDescription());
            String cover = doc.select("img").first().attr("src");
            rawBook.setCover(cover);
            bookService.updateBook(rawBook);
            result.put("code", 0);
            result.put("msg", "success");
        } catch (BussinessException ex) {
            ex.printStackTrace();
            result.put("code", ex.getCode());
            result.put("msg", ex.getMsg());
        }
        return result;
    }

    @GetMapping("/delete/{id}")
    @ResponseBody
    public Map deleteBook(@PathVariable("id") Long bookId){
        Map result = new HashMap();
        try {
            bookService.deleteBook(bookId);
            result.put("code", 0);
            result.put("msg", "success");
        }catch(BussinessException ex){
            result.put("code", ex.getCode());
            result.put("msg", ex.getMsg());
        }
        return result;
    }
}
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>图书管理功能</title>
    <style>
        #dlgBook{
            padding: 10px
        }
    </style>
    <link rel="stylesheet" href="/resources/layui/css/layui.css">

    <script src="/resources/wangEditor.min.js"></script>


    <script type="text/html" id="toolbar">
        <div class="layui-btn-container">
            <button class="layui-btn layui-btn-sm" id="btnAdd" onclick="showCreate()">添加</button>
        </div>
    </script>

</head>
<body>


<div class="layui-container">
    <blockquote class="layui-elem-quote">图书列表</blockquote>
   <!-- 数据表格 -->
    <table id="grdBook" lay-filter="grdBook"></table>
</div>
<!--表单内容-->
<div id="dialog" style="padding: 10px;display: none">
    <form class="layui-form" >
        <div class="layui-form-item">
         <!-- 图书类别 -->
            <select id="categoryId" name="categoryId" lay-verify="required" lay-filter=
         "categoryId">
                <option value=""></option>
                <option value="1">前端</option>
            <option value="2">后端</option>
            <option value="3">测试</option>
            <option value="4">产品</option>
            </select>

        </div>
        <div class="layui-form-item">
         <!-- 书名 -->
            <input type="text" id="bookName" name="bookName" required lay-verify="required" placeholder="请输入书名"
                   autocomplete="off" class="layui-input">
        </div>


        <div class="layui-form-item">
         <!-- 子标题 -->
            <input type="text" id="subTitle" name="subTitle" required lay-verify="required" placeholder="请输入子标题"
                   autocomplete="off" class="layui-input">
        </div>

        <div class="layui-form-item">
         <!-- 作者 -->
            <input type="text" id="author" name="author" required lay-verify="required" placeholder="请输入作者信息"
                   autocomplete="off" class="layui-input">
        </div>

        <div style="margin-top: 30px;font-size: 130%">图书介绍(默认第一图将作为图书封面)</div>
        <div class="layui-form-item" >
         <!-- wangEditor编辑器 -->
            <div id="editor" style="width: 100%">

            </div>
        </div>
      <!-- 图书编号 -->
        <input id="bookId" type="hidden">
      <!-- 当前表单操作类型,create代表新增 update代表修改 -->
        <input id="optype"  type="hidden">
        <div class="layui-form-item" style="text-align: center">
         <!-- 提交按钮 -->
            <button class="layui-btn" lay-submit="" lay-filter="btnSubmit">立即提交</button>
        </div>
    </form>
</div>
<script src="/resources/layui/layui.all.js"></script>
<script>

    var table = layui.table; //table数据表格对象
    var $ = layui.$; //jQuery
    var editor = null; //wangEditor富文本编辑器对象
    //初始化图书列表
    table.render({
        elem: '#grdBook'  //指定div
        , id : "bookList" //数据表格id
        , toolbar: "#toolbar" //指定工具栏,包含新增添加
        , url: "/management/book/list" //数据接口
        , page: true //开启分页
        , cols: [[ //表头
            {field: 'bookName', title: '书名', width: '300'}
            , {field: 'subTitle', title: '子标题', width: '200'}
            , {field: 'author', title: '作者', width: '200'}
            , {type: 'space', title: '操作', width: '200' , templet : function(d){
               //为每一行表格数据生成"修改"与"删除"按钮,并附加data-id属性代表图书编号
                    return "<button class='layui-btn layui-btn-sm btn-update'  data-id='" + d.bookId + "' data-type='update' onclick='showUpdate(this)'>修改</button>" +
                        "<button class='layui-btn layui-btn-sm btn-delete'  data-id='" + d.bookId + "'   onclick='showDelete(this)'>删除</button>";
                }
            }
        ]]
    });
   //显示更新图书对话框
   //obj对应点击的"修改"按钮对象
    function showUpdate(obj){
      //弹出"编辑图书"对话框
        layui.layer.open({
            id: "dlgBook", //指定div
            title: "编辑图书", //标题
            type: 1, 
            content: $('#dialog').html(), //设置对话框内容,复制自dialog DIV
            area: ['820px', '730px'], //设置对话框宽度高度
            resize: false //是否允许调整尺寸
        })

        var bookId = $(obj).data("id"); //获取"修改"按钮附带的图书编号
        $("#dlgBook #bookId").val(bookId); //为表单隐藏域赋值,提交表单时用到

        editor = new wangEditor('#dlgBook #editor'); //初始化富文本编辑器
        editor.customConfig.uploadImgServer = '/management/book/upload' //设置图片上传路径
        editor.customConfig.uploadFileName = 'img'; //图片上传时的参数名
        editor.create(); //创建wangEditor
        $("#dlgBook #optype").val("update"); //设置当前表单提交时提交至"update"更新地址

      //发送ajax请求,获取对应图书信息
        $.get("/management/book/id/" + bookId , {} , function(json){
         //文本框回填已有数据
            $("#dlgBook #bookName").val(json.data.bookName);//书名
            $("#dlgBook #subTitle").val(json.data.subTitle); //子标题
            $("#dlgBook #author").val(json.data.author);//作者
            $("#dlgBook #categoryId").val(json.data.categoryId); //分类选项
            editor.txt.html(json.data.description); //设置图文内容
            layui.form.render();//重新渲染LayUI表单
        } , "json")



    }
   //显示新增图书对话框
    function showCreate(){
      //弹出"新增图书"对话框
        layui.layer.open({
            id: "dlgBook",
            title: "新增图书",
            type: 1,
            content: $('#dialog').html(),
            area: ['820px', '730px'],
            resize: false
        })
      //初始化wangEditor
        editor = new wangEditor('#dlgBook #editor');
        editor.customConfig.uploadImgServer = '/management/book/upload';//设置图片上传地址
        editor.customConfig.uploadFileName = 'img';//设置图片上传参数
        editor.create();//创建wangEditor

        layui.form.render(); //LayUI表单重新
        $("#dlgBook #optype").val("create");//设置当前表单提交时提交至"create"新增地址

    };

   //对话框表单提交
    layui.form.on('submit(btnSubmit)', function(data){
      //获取表单数据
        var formData = data.field;
      
      //判断是否包含至少一副图片,默认第一图作为封面显示
        var description = editor.txt.html();
        if(description.indexOf("img") == -1){
            layui.layer.msg('请放置一副图片作为封面');
            return false;
        }
      //获取当前表单要提交的地址
      //如果是新增数据则提交至create
      //如果是更新数据则提交至update
        var optype = $("#dlgBook #optype").val();
      
        if(optype == "update"){
         //更新数据时,提交时需要附加图书编号
            formData.bookId=$("#dlgBook #bookId").val();
        }
      //附加图书详细描述的图文html
        formData.description = description;
      //向服务器发送请求
        $.post("/management/book/" + optype , formData , function(json){
            if(json.code=="0"){
            //处理成功,关闭对话框,刷新列表,提示操作成功
                layui.layer.closeAll();
                table.reload('bookList');
                layui.layer.msg('数据操作成功,图书列表已刷新');
            }else{
            //处理失败,提示错误信息
                layui.layer.msg(json.msg);
            }
        } ,"json")
        return false;
    });
   //删除图书
    function showDelete(obj){
      //获取当前点击的删除按钮中包含的图书编号
        var bookId = $(obj).data("id");
      //利用layui的询问对话框进行确认
        layui.layer.confirm('确定要执行删除操作吗?', {icon: 3, title:'提示'}, function(index){
               
            //确认按钮后发送ajax请求,包含图书编号
            $.get("/management/book/delete/" + bookId, {}, function (json) {
               if(json.code=="0"){
                  //删除成功刷新表格
                  table.reload('bookList');
                  //提示操作成功
                  layui.layer.msg('数据操作成功,图书列表已刷新');
                  //关闭对话框
                  layui.layer.close(index);
               }else{
                  //处理失败,提示错误信息
                  layui.layer.msg(json.msg);
               }
            }, "json");
         
        });

    }

</script>
</body>
</html>

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>慕课书评网数据管理系统</title>
<link rel="stylesheet" href="/resources/layui/css/layui.css">
</head>

<body class="layui-layout-body">
<!-- Layui后台布局CSS -->
<div class="layui-layout layui-layout-admin">
<!--头部导航栏-->
<div class="layui-header">
<!--系统标题-->
<div class="layui-logo" style="font-size:18px">慕课书评网数据管理系统</div>
<!--右侧当前用户信息-->
<ul class="layui-nav layui-layout-right">
<li class="layui-nav-item">
<a href="javascript:void(0)">
<!--图标-->
<span class="layui-icon layui-icon-user" style="font-size: 20px">
</span>
<!--用户信息-->
admin
</a>
</li>
<!--注销按钮-->
<li class="layui-nav-item"><a href="/management/logout">注销</a></li>
</ul>
</div>
<!--左侧菜单栏-->
<div class="layui-side layui-bg-black">
<!--可滚动菜单-->
<div class="layui-side-scroll">
<!--可折叠导航栏-->
<ul class="layui-nav layui-nav-tree">


<li class="layui-nav-item layui-nav-itemed">
<a href="javascript:void(0)">数据管理</a>
<dl class="layui-nav-child module" data-node-id="xxx">
<dd><a href="/management/book/index.html" target="ifmMain">图书管理</a></dd>
</dl>
</li>



</ul>
</div>
</div>
<!--主体部分采用iframe嵌入其他页面-->
<div class="layui-body" style="overflow-y: hidden">
<iframe name="ifmMain" style="border: 0px;width: 100%;height: 100%" src="/management/book/index.html"></iframe>
</div>
<!--版权信息-->
<div class="layui-footer">
Copyright © imooc. All Rights Reserved.
</div>
</div>
<!--LayUI JS文件-->
<script src="/resources/layui/layui.all.js"></script>
<script>
//将所有功能根据parent_id移动到指定模块下
layui.$(".function").each(function () {
var func = layui.$(this);
var parentId = func.data("parent-id");
layui.$("dl[data-node-id=" + parentId + "]").append(func);
});
//刷新折叠菜单
layui.element.render('nav');
</script>
</body>
</html>


写回答

3回答

好帮手慕阿满

2020-11-27

同学你好,在BookServiceImpl类中的deleteBook()方法中,应该是bookMapper.deleteById(bookId);而同学写成了查询语句,如:

http://img.mukewang.com/climg/5fc095df098cc77207140196.jpg

​建议同学修改一下再试试。

祝学习愉快!

0

慕仰7036876

提问者

2020-11-27

12:06:39 DEBUG {http-nio-8080-exec-5} o.m.spring.SqlSessionUtils - Releasing transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@6e38235a]

12:06:39 DEBUG {http-nio-8080-exec-5} o.m.spring.SqlSessionUtils - Fetched SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@6e38235a] from current transaction

12:06:39 DEBUG {http-nio-8080-exec-5} c.h.r.m.E.delete - ==>  Preparing: DELETE FROM evaluation WHERE (book_id = ?) 

12:06:39 DEBUG {http-nio-8080-exec-5} c.h.r.m.E.delete - ==> Parameters: 46(Long)

12:06:39 DEBUG {http-nio-8080-exec-5} c.h.r.m.E.delete - <==    Updates: 0

12:06:39 DEBUG {http-nio-8080-exec-5} o.m.spring.SqlSessionUtils - Releasing transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@6e38235a]

12:06:39 DEBUG {http-nio-8080-exec-5} o.m.spring.SqlSessionUtils - Transaction synchronization committing SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@6e38235a]

12:06:39 DEBUG {http-nio-8080-exec-5} o.m.spring.SqlSessionUtils - Transaction synchronization deregistering SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@6e38235a]

12:06:39 DEBUG {http-nio-8080-exec-5} o.m.spring.SqlSessionUtils - Transaction synchronization closing SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@6e38235a]

12:06:39 DEBUG {http-nio-8080-exec-5} o.s.j.d.DataSourceTransactionManager - Initiating transaction commit

12:06:39 DEBUG {http-nio-8080-exec-5} o.s.j.d.DataSourceTransactionManager - Committing JDBC transaction on Connection [com.mysql.jdbc.JDBC4Connection@1218fe9d]

12:06:39 DEBUG {http-nio-8080-exec-5} o.s.j.d.DataSourceTransactionManager - Releasing JDBC Connection [com.mysql.jdbc.JDBC4Connection@1218fe9d] after transaction

12:06:39 DEBUG {http-nio-8080-exec-5} o.s.w.s.m.m.a.RequestResponseBodyMethodProcessor - Using 'application/json', given [application/json, text/javascript, */*;q=0.01] and supported [application/json, application/*+json]

12:06:39 DEBUG {http-nio-8080-exec-5} o.s.w.s.m.m.a.RequestResponseBodyMethodProcessor - Writing [{msg=success, code=0}]

12:06:39 DEBUG {http-nio-8080-exec-5} o.s.w.s.DispatcherServlet - Completed 200 OK

12:06:39 DEBUG {http-nio-8080-exec-6} o.s.w.s.DispatcherServlet - GET "/management/book/list?page=5&limit=10", parameters={masked}

12:06:39 DEBUG {http-nio-8080-exec-6} o.s.w.s.m.m.a.RequestMappingHandlerMapping - Mapped to com.hugong.reader.controller.management.MBookController#list(Integer, Integer)

12:06:39 DEBUG {http-nio-8080-exec-6} o.m.spring.SqlSessionUtils - Creating a new SqlSession

12:06:39 DEBUG {http-nio-8080-exec-6} o.m.spring.SqlSessionUtils - Registering transaction synchronization for SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@8f96bab]

12:06:39 DEBUG {http-nio-8080-exec-6} o.s.j.d.DataSourceUtils - Fetching JDBC Connection from DataSource

12:06:39 DEBUG {http-nio-8080-exec-6} o.m.s.t.SpringManagedTransaction - JDBC Connection [com.mysql.jdbc.JDBC4Connection@1218fe9d] will be managed by Spring

12:06:39 DEBUG {http-nio-8080-exec-6} c.b.m.e.p.p.o.JsqlParserCountOptimize - JsqlParserCountOptimize sql=SELECT  book_id,book_name,sub_title,author,cover,description,category_id,evaluation_score,evaluation_quantity  FROM book

12:06:39 DEBUG {http-nio-8080-exec-6} c.h.r.m.BookMapper.selectPage - ==>  Preparing: SELECT COUNT(1) FROM book 

12:06:39 DEBUG {http-nio-8080-exec-6} c.h.r.m.BookMapper.selectPage - ==> Parameters: 

12:06:39 DEBUG {http-nio-8080-exec-6} c.h.r.m.BookMapper.selectPage - ==>  Preparing: SELECT book_id,book_name,sub_title,author,cover,description,category_id,evaluation_score,evaluation_quantity FROM book LIMIT ?,? 

12:06:39 DEBUG {http-nio-8080-exec-6} c.h.r.m.BookMapper.selectPage - ==> Parameters: 40(Long), 10(Long)

12:06:39 DEBUG {http-nio-8080-exec-6} c.h.r.m.BookMapper.selectPage - <==      Total: 5

12:06:39 DEBUG {http-nio-8080-exec-6} o.m.spring.SqlSessionUtils - Releasing transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@8f96bab]

12:06:39 DEBUG {http-nio-8080-exec-6} o.m.spring.SqlSessionUtils - Transaction synchronization deregistering SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@8f96bab]

12:06:39 DEBUG {http-nio-8080-exec-6} o.m.spring.SqlSessionUtils - Transaction synchronization closing SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@8f96bab]

12:06:39 DEBUG {http-nio-8080-exec-6} o.s.w.s.m.m.a.RequestResponseBodyMethodProcessor - Using 'application/json', given [application/json, text/javascript, */*;q=0.01] and supported [application/json, application/*+json]

12:06:39 DEBUG {http-nio-8080-exec-6} o.s.w.s.m.m.a.RequestResponseBodyMethodProcessor - Writing [{msg=success, code=0, data=[Book{bookId=41, bookName='鏋舵瀯鎬濈淮鎴愰暱涔嬪井鏈嶅姟', subTitle='杞婚噺绾ч」鐩紝绯荤粺鍖栫粡楠�', author='鏇� (truncated)...]

12:06:39 DEBUG {http-nio-8080-exec-6} o.s.w.s.DispatcherServlet - Completed 200 OK


0

慕仰7036876

提问者

2020-11-27

控制台在我使用删除的时候,只出现了删除之后的查找语句,没有删除的sql语句

0

0 学习 · 16556 问题

查看课程