● 通过本篇博客的案例,也多少能明白,图文混排的内容,在后端是如何处理的、在数据库中是如何存储的;

说明:

(1)本篇博客内容说明:

图片[1]-● 通过本篇博客的案例,也多少能明白,图文混排的内容,在后端是如何处理的、在数据库中是如何存储的;-JieYingAI捷鹰AI

(2)本博客的几个点:

java中一款不错的HTML解析器:jsoup;

●其实,目前来看,只要【和前端对接好接口,设置好url,明确了来回的数据格式】,单纯的开发后端的CRUD,其实工作量不大;由此能够感受到,作为主栈是后端的开发者来说,CRUD比较简单;真正复杂和牛批的是:【底层数据库优化】、【并发】、【分布式】、【算法】、【引擎】、【设计模式】、【中间件】、【目前成熟框架的源码】、【计算机组成原理】、【网络协议】、【大数据】、【系统架构优化】等;

●通过本篇博客的案例,也多少能明白,图文混排的内容,在后端是如何处理的、在数据库中是如何存储的;

目录

一:前置分析;

图片[2]-● 通过本篇博客的案例,也多少能明白,图文混排的内容,在后端是如何处理的、在数据库中是如何存储的;-JieYingAI捷鹰AI

然后,需要注意,我们要求wangEditor最少需要传入一张图片;而且,其中的第一张图会默认作为该图书的封面;

……………………………………………………

之所以是【localhost/management/book/create】这个地址:下面给出说明:

图片[3]-● 通过本篇博客的案例,也多少能明白,图文混排的内容,在后端是如何处理的、在数据库中是如何存储的;-JieYingAI捷鹰AI

图片[4]-● 通过本篇博客的案例,也多少能明白,图文混排的内容,在后端是如何处理的、在数据库中是如何存储的;-JieYingAI捷鹰AI

图片[5]-● 通过本篇博客的案例,也多少能明白,图文混排的内容,在后端是如何处理的、在数据库中是如何存储的;-JieYingAI捷鹰AI

……………………………………………………

表单提交的数据分析:

图片[6]-● 通过本篇博客的案例,也多少能明白,图文混排的内容,在后端是如何处理的、在数据库中是如何存储的;-JieYingAI捷鹰AI

● 当我新增图书时,evaluation_score和evaluation_quantity都是0,这个很容易理解;

● 我们要求wangEditor最少需要传入一张图片;而且,其中的第一张图会默认作为该图书的封面;而wangEditor中的内容就是description,其实一段HTML片段;所以,description这个HTML片段中的,第一个

就是cover,这个需要我们在后端处理一下;为了能更好的解决这个需求,引入了java中一款不错的HTML解析器:jsoup;

二:后台接口开发; 1.在BookService接口中,定义一个新增图书的方法:createBook()方法;

图片[7]-● 通过本篇博客的案例,也多少能明白,图文混排的内容,在后端是如何处理的、在数据库中是如何存储的;-JieYingAI捷鹰AI

2.在BookServiceImpl中,去实现createBook()方法;

图片[8]-● 通过本篇博客的案例,也多少能明白,图文混排的内容,在后端是如何处理的、在数据库中是如何存储的;-JieYingAI捷鹰AI

附:jsoup简介,在工程中引入jsoup;

访问jsoup的官网:【】;

图片[9]-● 通过本篇博客的案例,也多少能明白,图文混排的内容,在后端是如何处理的、在数据库中是如何存储的;-JieYingAI捷鹰AI

在pom.xml中,引入jsoup依赖;

        
        
            org.jsoup
            jsoup
            1.12.1
        

图片[10]-● 通过本篇博客的案例,也多少能明白,图文混排的内容,在后端是如何处理的、在数据库中是如何存储的;-JieYingAI捷鹰AI

老生常谈的点:引入新依赖后,如有需要,记得添加到发布中去;

3.在MBookController类中,创建新增图书的方法:createBook()方法;

/**
     * 新增图书
     * @param book
     * @return
     */
    @PostMapping("/create")
    @ResponseBody
    public Map createBook(Book book) {
        Map result = new HashMap();
        try {
            book.setEvaluationQuantity(0);
            book.setEvaluationScore(0f);
            //获取图书的description属性值,并解析
            Document document = Jsoup.parse(book.getDescription());
            //获取图书description属性中的,第一个图片的元素对象
            Element img = document.select("img").first();
            //获取改图片元素的,src属性值
            String cover = img.attr("src");
            //给book对象的cover属性,赋值
            book.setCover(cover);
            bookService.createBook(book);
            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;
    }

说明:

(1)url要对的上;

图片[11]-● 通过本篇博客的案例,也多少能明白,图文混排的内容,在后端是如何处理的、在数据库中是如何存储的;-JieYingAI捷鹰AI

(2)前端表单的输入项,就是针对Book来的,而且其命名符合Book属性;所以,后端可以用Book实体类去接收;

图片[12]-● 通过本篇博客的案例,也多少能明白,图文混排的内容,在后端是如何处理的、在数据库中是如何存储的;-JieYingAI捷鹰AI

(3)然后,就是补全Book的属性:其中用到了java中一款不错的HTML解析器:jsoup;

图片[6]-● 通过本篇博客的案例,也多少能明白,图文混排的内容,在后端是如何处理的、在数据库中是如何存储的;-JieYingAI捷鹰AI

图片[14]-● 通过本篇博客的案例,也多少能明白,图文混排的内容,在后端是如何处理的、在数据库中是如何存储的;-JieYingAI捷鹰AI

(4)然后,就是调用BookService中定义的createBook方法;并根据前端的要求返回对应的code和mag信息;

图片[15]-● 通过本篇博客的案例,也多少能明白,图文混排的内容,在后端是如何处理的、在数据库中是如何存储的;-JieYingAI捷鹰AI

(5)还有一点就是,BookService的createBook()方法没有抛BussinessException异常,但为什么Controller这儿要捕获这个异常呐?:这一点前面说过,BookService的createBook()方法现在没抛BussinessException异常,不代表以后新业务需要来的时候不抛;;;所以,Controller这儿算是提前准备了一手;

4.运行效果;

图片[16]-● 通过本篇博客的案例,也多少能明白,图文混排的内容,在后端是如何处理的、在数据库中是如何存储的;-JieYingAI捷鹰AI

图片[17]-● 通过本篇博客的案例,也多少能明白,图文混排的内容,在后端是如何处理的、在数据库中是如何存储的;-JieYingAI捷鹰AI

……………………………………………………

继续执行:可以看到Book的主键ID也回填了:(背后,是Mybatis-Plus已经帮我们做了;)

图片[18]-● 通过本篇博客的案例,也多少能明白,图文混排的内容,在后端是如何处理的、在数据库中是如何存储的;-JieYingAI捷鹰AI

……………………………………………………

放开断点,让其继续执行:底层数据库也没问题;

图片[19]-● 通过本篇博客的案例,也多少能明白,图文混排的内容,在后端是如何处理的、在数据库中是如何存储的;-JieYingAI捷鹰AI

……………………………………………………

然后,在前台系统中,也能看到我们新增的那本图书;

图片[20]-● 通过本篇博客的案例,也多少能明白,图文混排的内容,在后端是如何处理的、在数据库中是如何存储的;-JieYingAI捷鹰AI

至此,图书的新增功能就OK了;下篇博客要做的就是,在后台系统首页上,展示图书的数据表格;

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发
头像
来说点什么吧!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容