IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> springboot处理blog字段 -> 正文阅读

[Java知识库]springboot处理blog字段

springboot处理blog字段

欢迎关注博主公众号「Java大师」, 专注于分享Java领域干货文章https://www.javaman.cn/

1、数据库表结构

其中content为longblob字段,代表存入的内容

CREATE TABLE `t_post` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `channel_id` int(11) DEFAULT NULL,
  `created` datetime DEFAULT NULL,
  `status` int(11) NOT NULL,
  `summary` varchar(140) COLLATE utf8_bin DEFAULT NULL,
  `tags` varchar(64) COLLATE utf8_bin DEFAULT NULL,
  `title` varchar(64) COLLATE utf8_bin DEFAULT NULL,
  `views` int(11) NOT NULL,
  `weight` int(11) NOT NULL,
  `description` varchar(255) COLLATE utf8_bin DEFAULT NULL,
  `keywords` varchar(255) COLLATE utf8_bin DEFAULT NULL,
  `content` longblob,
  PRIMARY KEY (`id`),
  KEY `IK_CHANNEL_ID` (`channel_id`)
) ENGINE=InnoDB AUTO_INCREMENT=81 DEFAULT CHARSET=utf8 COLLATE=utf8_bin

2、创建对应的实体类model

将content内容生命为byte[]类型

private byte[] content;

package com.dsblog.server.model;

import com.baomidou.mybatisplus.annotation.*;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * <p>
 * 
 * </p>
 *
 * @author java大师
 * @since 2022-05-05
 */
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("t_post")
@ApiModel(value="Post对象", description="")
public class Post implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value="id")
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;
    @ApiModelProperty(value="栏目")
    @TableField(value = "channel_id")
    private Integer channelId;
    @ApiModelProperty(value="创建时间")
    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime created;
    @ApiModelProperty(value="状态")
    private Integer status;
    @ApiModelProperty(value="概要")
    private String summary;
    @ApiModelProperty(value="标签")
    private String tags;
    @ApiModelProperty(value="标题")
    private String title;
    @ApiModelProperty(value="访问次数")
    private Integer views;
    @ApiModelProperty(value="权重")
    private Integer weight;
    @ApiModelProperty(value="描述")
    private String description;
    @ApiModelProperty(value="关键词")
    private String keywords;
    @ApiModelProperty(value="内容")
    @JsonDeserialize(using = PostDeserializer.class)   
    private byte[] content;
}

3、创建反序列化注释类

package com.dsblog.server.config;

import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.JsonDeserializer;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;

import java.io.IOException;

public class PostDeserializer extends JsonDeserializer {
    @Override
    public Object deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
        ObjectMapper mapper = (ObjectMapper) jsonParser.getCodec();
        JsonNode textNode = mapper.readTree(jsonParser);
        return textNode.asText().toString().getBytes("UTF-8");
    }
}

4、修改model类的content,增加注解

@JsonDeserialize(using = PostDeserializer.class)
private byte[] content;

5、添加post信息

@ApiOperation(value = "添加文章")
@PostMapping("/")
public ResultBean addPost(@RequestBody Post post){
    if (postService.saveOrUpdate(post)){
        return ResultBean.success("添加成功");
    }
    return ResultBean.error("添加失败");
}

6、测试

1-输入请求参数,点击发送

在这里插入图片描述

2-content已经插入成功

在这里插入图片描述

注意:如果不对content进行反序列化,添加会报如下错误:

Resolved [org.springframework.http.converter.HttpMessageNotReadableException:
 JSON parse error: Invalid UTF-8 start byte 0xa4; 
nested exception is com.fasterxml.jackson.databind.JsonMappingException: 
Invalid UTF-8 start byte 0xa4<LF> at [Source: (PushbackInputStream); line: 3, column: 20] 
(through reference chain: com.xxxx.model.Post["content"])]
  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2022-05-09 12:26:14  更:2022-05-09 12:30:27 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 0:09:56-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码