咸阳网站建设公司哪家好,淘宝客做网站怎样推广,php网站开发技术文档,做网站有没有效果转载自#xff1a;www.javaman.cn 在 Spring Boot 项目中使用 MyBatis-Plus 处理 longblob 字段时#xff0c;我们可以按照以下步骤进行操作。假设 longblob 存储的是字符串数据。以下是完整的示例代码#xff1a;
添加依赖#xff1a;在你的项目的 pom.xml 文件中添加 My… 转载自www.javaman.cn 在 Spring Boot 项目中使用 MyBatis-Plus 处理 longblob 字段时我们可以按照以下步骤进行操作。假设 longblob 存储的是字符串数据。以下是完整的示例代码
添加依赖在你的项目的 pom.xml 文件中添加 MyBatis-Plus 的依赖
dependencygroupIdcom.baomidou/groupIdartifactIdmybatis-plus-boot-starter/artifactIdversion最新版本号/version
/dependency创建 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 BaseTypeHandlerString {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 ServiceImplArticleMapper, Article {/*** 添加文章* param article*/public void add(NotNull Article article){this.save(article);}
}