mybatis-plus處理blob字段的完整示例代碼
在 Spring Boot 項目中使用 MyBatis-Plus 處理 longblob 字段時,我們可以按照以下步驟進行操作。假設 longblob 存儲的是字符串數據。以下是完整的示例代碼:
添加依賴:在你的項目的 pom.xml 文件中添加 MyBatis-Plus 的依賴:
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>最新版本號</version>
</dependency>創(chuàng)建 MyLongBlobTypeHandler 類:創(chuàng)建一個自定義的類型處理器 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> {
@Override
public void setNonNullParameter(PreparedStatement preparedStatement, int i, String s, JdbcType jdbcType) throws SQLException {
preparedStatement.setBytes(i, s.getBytes(StandardCharsets.UTF_8));
}
@Override
public String getNullableResult(ResultSet resultSet, String s) throws SQLException {
byte[] bytes = resultSet.getBytes(s);
return new String(bytes, StandardCharsets.UTF_8);
}
@Override
public String getNullableResult(ResultSet resultSet, int i) throws SQLException {
byte[] bytes = resultSet.getBytes(i);
return new String(bytes, StandardCharsets.UTF_8);
}
@Override
public String getNullableResult(CallableStatement callableStatement, int i) throws SQLException {
byte[] bytes = callableStatement.getBytes(i);
return new String(bytes, StandardCharsets.UTF_8);
}
}?2.定義實體類:創(chuàng)建一個實體類,用于映射數據庫表。在實體類中,使用 @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;
//description
private String description;
//keywords
private 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);
}
}到此這篇關于mybatis-plus處理blob字段的文章就介紹到這了,更多相關mybatis-plus blob字段內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Java中Collections.emptyList()的注意事項
這篇文章主要給大家介紹了關于Java中Collections.emptyList()的注意事項,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2021-03-03
解讀@Bean和@Autowired、@Resource之間的區(qū)別
這篇文章主要介紹了@Bean和@Autowired、@Resource之間的區(qū)別及說明,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2025-03-03
Java中的異步操作CompletableFuture示例詳解
CompletableFuture是Java8引入的異步編程工具,支持非阻塞的鏈式調用和組合操作,提供了強大的異步任務編排能力,本文通過實例代碼講解Java中的異步操作CompletableFuture,感興趣的朋友跟隨小編一起看看吧2026-02-02
java byte數組與int,long,short,byte的轉換實現方法
下面小編就為大家?guī)硪黄猨ava byte數組與int,long,short,byte的轉換實現方法。小編覺得挺不錯的,現在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-10-10
springcloud如何使用dubbo開發(fā)rpc服務及調用
這篇文章主要介紹了springcloud如何使用dubbo開發(fā)rpc服務及調用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-01-01
spring boot使用自定義配置的線程池執(zhí)行Async異步任務
這篇文章主要介紹了spring boot使用自定義配置的線程池執(zhí)行Async異步任務,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-01-01

