mybatis-plus 处理json数组,数组的数据类型是Integer


使用MyBatis-Plus处理JSON数组(Integer类型)时,可以通过自定义TypeHandler实现。 1. 创建自定义TypeHandler处理Integer数组与JSON字符串的转换: ```java import org.apache.ibatis.type.BaseTypeHandler; import org.apache.ibatis.type.JdbcType; import com.fasterxml.jackson.databind.ObjectMapper; import java.sql.CallableStatement; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.Arrays; import java.util.List; public class IntegerArrayTypeHandler extends BaseTypeHandler<Integer[]> { private static final ObjectMapper objectMapper = new ObjectMapper(); @Override public void setNonNullParameter(PreparedStatement ps, int i, Integer[] parameter, JdbcType jdbcType) throws SQLException { ps.setString(i, toJson(parameter)); } @Override public Integer[] getNullableResult(ResultSet rs, String columnName) throws SQLException { return fromJson(rs.getString(columnName)); } @Override public Integer[] getNullableResult(ResultSet rs, int columnIndex) throws SQLException { return fromJson(rs.getString(columnIndex)); } @Override public Integer[] getNullableResult(CallableStatement cs, int columnIndex) throws SQLException { return fromJson(cs.getString(columnIndex)); } private String toJson(Integer[] array) { try { return objectMapper.writeValueAsString(array); } catch (Exception e) { throw new RuntimeException("转换JSON失败", e); } } private Integer[] fromJson(String json) { try { if (json == null || json.isEmpty()) { return new Integer[0]; } return objectMapper.readValue(json, Integer[].class); } catch (Exception e) { throw new RuntimeException("解析JSON失败", e); } } } ``` 2. 在实体类字段上使用@TableField注解指定TypeHandler: ```java import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; @TableName("your_table") public class YourEntity { @TableField(value = "json_array_column", typeHandler = IntegerArrayTypeHandler.class) private Integer[] integerArray; // Getter和Setter方法 public Integer[] getIntegerArray() { return integerArray; } public void setIntegerArray(Integer[] integerArray) { this.integerArray = integerArray; } } ``` 3. 在MyBatis配置中注册TypeHandler(若使用Spring Boot): ```yaml mybatis-plus: type-handlers-package: com.yourpackage.handler ``` 我在以往的开发过程中,碰到过以下几点需要格外小心处理的地方: - JSON序列化异常处理要完善,避免空指针或格式错误导致系统崩溃 - 数据库字段类型需设置为能够存储JSON字符串的格式,如VARCHAR或TEXT - 类型处理器性能考虑,大数据量时JSON解析可能成为瓶颈 [2025-08-26 11:22:23 | AI写代码神器 | 660点数解答]
- [@biuem2.com_假人系统私人申明] { ;红尘脚本定制版本修改"qq=23751168 #if checklevelex > 0 #act var integer human 假人安全区序号 var integer human 假人系统计算1 var integer human 假人系统计算2 var integer human 假人系统计算3 var integer human 假人系统计算12 var integer human 假人系统计算13 var integer human 假人系统判断1 var integer human 假人站桩判断1 var integer human 假人安全定点x var integer human 假人安全定点y var integer human 假人安全定点t var integer human 假人安全移动间 var integer human 假人安全移动隔 var integer human 假人安全停留间 var integer human 假人安全停留隔 var integer human 假人下图打怪间 var int(37点数解答 | 2024-07-30 18:26:07)254
- 一、 数据库表结构如下: 数据库名称:bookanage 表:booktype(图书类型表) 字段显示 字段名 数据类型 默认值 备注和说明 类型编号 typeid int 主键,自动增长列 类型名称 typename varchar (50) 不允许为空 表:bookinfo(图书信息表) 字段显示 字段名 数据类型 默认值 备注和说明 图书编号 isbn varchar(20) 主键 图书名称 bookname varchar(100) 不允许为空 图书价格 price char(10) 不允许为空 作者 author varchar (50) 库存 stock int 0 不允许为空 图书类型编号 typeid int 外键,图书类型编号 外键,图书类型编号 二.题目功能需求详细描述 1、数据库:创建数据库bookmanage,创建数据表:booktype和bookinfo,至少向 每张表中添加3条测试数据。参考数据如下: 结果消息 客户端统计信息 typeid tynename 1 1 2 2 3(909点数解答 | 2024-06-22 22:25:19)324
- win form一、 数据库表结构如下: 数据库名称:bookanage 表:booktype(图书类型表) 字段显示 字段名 数据类型 默认值 备注和说明 类型编号 typeid int 主键,自动增长列 类型名称 typename varchar (50) 不允许为空 表:bookinfo(图书信息表) 字段显示 字段名 数据类型 默认值 备注和说明 图书编号 isbn varchar(20) 主键 图书名称 bookname varchar(100) 不允许为空 图书价格 price char(10) 不允许为空 作者 author varchar (50) 库存 stock int 0 不允许为空 图书类型编号 typeid int 外键,图书类型编号 外键,图书类型编号 二.题目功能需求详细描述 1、数据库:创建数据库bookmanage,创建数据表:booktype和bookinfo,至少向 每张表中添加3条测试数据。参考数据如下: 结果消息 客户端统计信息 typeid tynename 1 1 2 2 3 3 4 45 5 isbn bookname price aut(1163点数解答 | 2024-06-22 22:26:42)280
- mybatis plus 实现数据权限控制(567点数解答 | 2024-05-29 22:59:21)216
- mybatis-plus 纯代码写 联表查询语句(284点数解答 | 2024-10-17 11:46:14)173
- mybatis-plus 取表中某个字段最大值(527点数解答 | 2024-10-17 14:52:50)271
- mybatis-plus 实现取某个字段最大值(237点数解答 | 2024-12-10 10:12:49)121
- mybatis-plus 实现取某个字段最大值(247点数解答 | 2024-12-10 10:13:04)268
- mybatis-plus 处理json数组,数组的数据类型是Integer(660点数解答 | 2025-08-26 11:22:23)59
- mybatis-plus 处理json数组转List,List数据类型是Integer(656点数解答 | 2025-08-26 11:26:36)88
- centos java进程出现futex_wait_queue_me,处理(283点数解答 | 2023-11-20 14:51:26)395
- 替雷利珠单抗是一种抗pd-1免疫检查点抑制剂,广泛应用于多种肿瘤的免疫治疗中,可能引发免疫相关性不良反应,罕见但严重的并发症之一为免疫相关性糖尿病。该类型糖尿病通常呈现1型糖尿病的特征,发病迅速且不可逆,通常伴随糖尿病酮症酸中毒的急性发作。该文报道1例替雷利珠单抗注射液致免疫相关性糖尿病的病例,通过分析现有文献和临床案例,总结替雷利珠单抗引发免疫相关性糖尿病的临床特征,探讨免疫检查点抑制剂致糖尿病潜在的发病机制、处理、药学监护,以期在临床使用中警惕抗pd-1免疫检查点抑制剂引起的免疫相关不良反应。翻译成英文(164点数解答 | 2024-10-11 14:52:52)207