mybatis-plus處理blob字段

轉載自:www.javaman.cn

在 Spring Boot 項目中使用 MyBatis-Plus 處理 longblob 字段時,我們可以按照以下步驟進行操作。假設 longblob 存儲的是字符串數據。以下是完整的示例代碼:

  1. 添加依賴:在你的項目的 pom.xml 文件中添加 MyBatis-Plus 的依賴:
<dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>最新版本號</version>
</dependency>
  1. 創建 MyLongBlobTypeHandler 類:創建一個自定義的類型處理器 MyLongBlobTypeHandler 來處理 longblob 字段的數據。這個處理器會將 longblob 轉換為字符串。
import org.apache.ibatis.type.BaseTypeHandler;
import org.apache.ibatis.type.JdbcType;
import java.sql.*;
import java.io.IOException;
import java.nio.charset.StandardCharsets;@Component
public class MyLongBlobTypeHandler extends BaseTypeHandler<String> {@Overridepublic void setNonNullParameter(PreparedStatement preparedStatement, int i, String s, JdbcType jdbcType) throws SQLException {preparedStatement.setBytes(i, s.getBytes(StandardCharsets.UTF_8));}@Overridepublic String getNullableResult(ResultSet resultSet, String s) throws SQLException {byte[] bytes = resultSet.getBytes(s);return new String(bytes, StandardCharsets.UTF_8);}@Overridepublic String getNullableResult(ResultSet resultSet, int i) throws SQLException {byte[] bytes = resultSet.getBytes(i);return new String(bytes, StandardCharsets.UTF_8);}@Overridepublic String getNullableResult(CallableStatement callableStatement, int i) throws SQLException {byte[] bytes = callableStatement.getBytes(i);return new String(bytes, StandardCharsets.UTF_8);}
}

? 2.定義實體類:創建一個實體類,用于映射數據庫表。在實體類中,使用 @TableField 注解來指定數據庫字段和類型處理器。例如下面文章的content內容字段就是longblob字段,通過@TableField注解指定類型處理

@Data
@TableName("blog_article")
public class Article extends BaseEntity {private String name;private String url;private String tag;private Long channelId;private String channelName;@TableField(value = "content", typeHandler = MyLongBlobTypeHandler.class)private String content;private Integer orderNum;//是否啟用,Y啟用,N禁用private String enabled;//瀏覽數private Integer views;//descriptionprivate String description;//keywordsprivate String keywords;
}

? 3.使用 MyBatis-Plus 正常插入即可:sevice層中正常使用,處理器會默認轉成longblob插入數據庫

@Service
public class ArticleService extends ServiceImpl<ArticleMapper, Article> {/*** 添加文章* @param article*/public void add(@NotNull Article article){this.save(article);}
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/210483.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/210483.shtml
英文地址,請注明出處:http://en.pswp.cn/news/210483.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

js判斷上傳的文件是GBK編碼還是UTF-8

1、獲取文件二進制數據&#xff0c;這里只做示例&#xff0c;例如element-ui中文件上傳的beforeUpload方法&#xff0c;返回的file對象&#xff0c;然后使用FileReader對其進行轉換&#xff0c;再進行后續判斷 function beforeUpload(file: File) { const reader new FileRea…

Linux基本指令(超詳版)

Linux基本指令&#xff08;超詳版&#xff09; 1. ls指令2.pwd指令3. cd 指令4.touch指令5mkdir指令6.rmdir指令&&rm指令7.man指令7.cp指令8.mv指令9.echo指令10.cat指令11.more指令12.less指令13.head指令14.tail指令15.date指令16.find指令17.grep指令zip(打包壓縮) …

JVM類加載器ClassLoader的源碼分析

1、ClassLoader與現有類加載器的關系 ClassLoader與現有類加載器的關系&#xff1a; ClassLoader是一個抽象類。如果我們給定了一個類的二進制名稱&#xff0c;類加載器應嘗試去定位或生成構成定義類的數據。一種典型的策略是將給定的二進制名稱轉換為文件名&#xff0c;然后去…

C語言--實現一個函數把一個整數轉為它對應的十六進制的字符串

一.題目描述 實現一個函數把一個整數轉為它對應的十六進制的字符串。 比如&#xff1a;輸入數字1234 輸出&#xff1a;4D2 二.思路分析 用一個sprintf函數可以解決問題&#xff0c;輸出相對應的字符串 要注意的問題就是&#xff1a;函數結束后要繼續使用的內存&#xff08;比如…

Carla自動駕駛仿真六:pygame多個車輛攝像頭畫面拼接

此文章主要介紹carla前后左右攝像頭畫面拼接到pygame上 文章目錄 前言一、要點分析二、完整代碼三、拼接效果四、總結 前言 1、使用carla做仿真測試或者開發時&#xff0c;如果能夠將車輛周邊的畫面拼接并渲染&#xff0c;可以直觀地查看周圍地環境&#xff0c;便于調試。本文…

Spring Boot 工廠模式 + 抽象類 + 泛型干掉重復代碼

業務場景&#xff1a;N個Excel導入&#xff0c;實現動態加載&#xff0c;只需要定義Excel實體&#xff0c;即可實現功能開發&#xff0c; 核心代碼 import cn.afterturn.easypoi.excel.annotation.ExcelTarget; import cn.hutool.core.annotation.AnnotationUtil; import cn.h…

刪除Windows系統中無用的隱藏設備

一些即插即用設備會占用一些隱藏的系統資源&#xff0c;比如USB轉串口的設備會占用COM號碼&#xff0c;網卡會占用靜態IP地址等等。 通常我們使用設備管理器的顯示隱藏設備功能&#xff0c;來刪除這些設備。但是設備管理器每次只允許刪除一個設備&#xff0c;如果設備太多了&a…

【算法集訓】基礎數據結構:四、棧

棧理解了兩天&#xff0c;所以遲了一天發。 一、棧的概念 棧是一個容器&#xff0c;是一個先進后出的線性表&#xff0c;類似與日常生活中的電梯、杯子等。 僅限在表尾部進行插入和刪除操作。 使用鏈表來模擬棧&#xff1a; typedef int DataType; 相當于給int起一個別名 st…

Go 協程基礎:輕松入門并發編程,解析 Goroutines 的奧秘

一、協程基本使用 1、啟動一個協程 主線程中每個100毫秒打印一次&#xff0c;總共打印2次另外開啟一個協程&#xff0c;打印10次情況一&#xff1a;打印是交替&#xff0c;證明是并行的情況二&#xff1a;開啟的協程打印2次&#xff0c;就退出了&#xff08;因為主線程退出了…

做題筆記:SQL Sever 方式做牛客SQL的題目--SQL157

----SQL157 平均播放進度大于60%的視頻類別 計算各類視頻的平均播放進度&#xff0c;將進度大于60%的類別輸出。 注&#xff1a; 播放進度播放時長視頻時長*100%&#xff0c;當播放時長大于視頻時長時&#xff0c;播放進度均記為100%。 結果保留兩位小數&#xff0c;并按播放進…

基于ssm的學生公寓管理中心系統的設計與實現論文

摘 要 現代經濟快節奏發展以及不斷完善升級的信息化技術&#xff0c;讓傳統數據信息的管理升級為軟件存儲&#xff0c;歸納&#xff0c;集中處理數據信息的管理方式。本學生公寓管理中心系統就是在這樣的大環境下誕生&#xff0c;其可以幫助管理者在短時間內處理完畢龐大的數據…

[報錯]記錄IDEA遠程開發報錯:java: Cannot run program.....

報錯內容 IDEA在進行遠程開發的時候報錯&#xff0c;內容如下&#xff1a; java: Cannot run program "/usr/lib/jvm/java-1.8.0-openjdk-amd64/bin/java" (in directory "/home/jim/.cache/JetBrains/RemoteDev-IU/_home_jim_DevCodes_Github_zfile/compile-…

redis主從復制【面試必看】

在分布式系統中&#xff0c;希望使用多個服務器來部署redis&#xff0c;存在以下幾種redis的部署方式 主從模式主從哨兵集群模式 主從模式 在若干個redis節點中&#xff0c;有的是主節點&#xff0c;有的是從節點 假設有三個物理服務器&#xff08;稱為是三個節點&#xff…

(JSP)EL——優化登錄界面,獲取對象,獲取數據

EL優化登錄界面 <% page language"java" import"java.util.*" pageEncoding"UTF-8"%> <% String path request.getContextPath(); String basePath request.getScheme()"://"request.getServerName()":"reques…

生產工序(oj題)

很有趣的一道題 關鍵在于固定工序的整合 看樣例是固定工序中間是不能插入其他工序的&#xff08;也不講清楚&#xff09;&#xff0c;如果可以的話&#xff0c;只能說可能會更麻煩 注意固定工序是按照固定工序中的第一個工序進行排序的 整合完之后&#xff0c;就是遞歸列出…

Java中的IO流①——IO流的體系、字節流、try...catch異常處理

概述 IO流的分類 IO流的體系 這四個類都是抽象類&#xff0c;所以需要實現類對象才能使用---> 字節流 FileInputStream--> 書寫細節 代碼示范 此時文件a.txt內容為abcde 使用char強轉和read方法調用五次read方法--> public static void main(String[] args) throws IO…

mysql 語言學習

整理了一下 mysql 操作語言&#xff0c;不是很全&#xff0c;部分地方也許需要修改&#xff0c;先放上來&#xff0c;有時間再慢慢完善。 一、數據庫操作 連接數據庫 $ sudo mysql [-h ip] -u root -p [-P 3306] 初始化數據庫 $ mysql_secure_installation備份數據庫 # 備…

初出茅廬的小李博客之TobudOS移植到EVB_AIoT開發板

本博客參考教程&#xff1a; https://atomgit.com/OpenAtomFoundation/TobudOS/blob/master/doc/TobudOS_EVB_AIoT_STM32_Guide.md 介紹一下EVB_AIoT開發板 這個開發板是由TobudOS開源社區聯合意法半導體、南京厚德物聯網設計的一款高性能IoT開發平臺&#xff0c;主控芯片是S…

SystemVerilog學習(0)——目錄與傳送門

一、驗證導論 SystemVerilog學習&#xff08;1&#xff09;——驗證導論-CSDN博客文章瀏覽閱讀403次。SystemVerilog自學&#xff0c;驗證系統概述&#xff0c;什么是SVhttps://blog.csdn.net/apple_53311083/article/details/133953016 二、數據類型 SystemVerilog學習&…

含掩膜mask的單通道灰度圖轉化為COCO數據集格式標簽的json文件(python)

輸入&#xff1a;單通道的灰度圖&#xff0c;灰度圖內含掩膜mask 目標&#xff1a;把灰度圖中的語義mask轉換為COCO數據集格式的json文件 輸出&#xff1a;COCO數據集格式的json文件 期間遇到的問題&#xff1a; 發現有的掩膜內部存在其他類別的掩膜&#xff0c;即mask內部還套…