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>
创建 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> { @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.定义实体类:创建一个实体类,用于映射数据库表。在实体类中,使用 @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字段内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
Java并发编程中的CompletableFuture使用详解
这篇文章主要介绍了Java并发编程中的CompletableFuture使用详解,Future接口定义了操作异步任务执行的一些方法,如获取异步任务执行的结果、取消任务的执行、判断任务是否被取消,判断任务是否执行完毕等,需要的朋友可以参考下2023-12-12SpringBoot中使用com.alibaba.druid.filter.config.ConfigTools对数据库
这篇文章主要介绍了SpringBoot中使用com.alibaba.druid.filter.config.ConfigTools对数据库密码加密的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2021-01-01
最新评论