resultMap的extends用法

<resultMap extends="ResultMap" id="NewResultMap" type="org.user.entity.Goods">
      <result column="goods_detail_content" jdbcType="LONGVARCHAR" property="goodsDetailContent"/>
</resultMap>

定义了一个名为 "NewResultMap" 的结果映射。它扩展了 "ResultMap",这表示它包含了 "BaseResultMap" 中的所有映射规则,并加上对goodsDetailContent参数的映射。

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
如果 MySQL 数据库中某字段为 JSON 类型,且返回的是 JSON 对象数组,那么在 MyBatis 中需要进行特殊的处理。一般情况下,我们可以使用 `@Result` 注解或 `<result>` 标签来对查询结果进行映射,但是这种方式对于 JSON 对象数组来说并不适用。 针对这种情况,可以使用 MyBatis 的 `TypeHandler` 接口来自定义类型处理器,将 JSON 字符串转化为 Java 对象。具体步骤如下: 1. 创建一个实体类,用于存储 JSON 对象数组的数据。 ```java public class MyJsonArray { private List<MyJsonObject> jsonArray; // getter 和 setter 方法省略 } ``` 2. 创建一个 `TypeHandler` 接口的实现类,用于将 JSON 字符串转化为 `MyJsonArray` 对象。代码如下: ```java public class MyJsonArrayTypeHandler extends BaseTypeHandler<MyJsonArray> { @Override public void setNonNullParameter(PreparedStatement ps, int i, MyJsonArray parameter, JdbcType jdbcType) throws SQLException { // 将 MyJsonArray 对象转化为 JSON 字符串,并设置到 PreparedStatement 中 ps.setString(i, JSON.toJSONString(parameter.getJsonArray())); } @Override public MyJsonArray getNullableResult(ResultSet rs, String columnName) throws SQLException { // 从 ResultSet 中获取 JSON 字符串,并将其转化为 MyJsonArray 对象 return parseJson(rs.getString(columnName)); } @Override public MyJsonArray getNullableResult(ResultSet rs, int columnIndex) throws SQLException { // 从 ResultSet 中获取 JSON 字符串,并将其转化为 MyJsonArray 对象 return parseJson(rs.getString(columnIndex)); } @Override public MyJsonArray getNullableResult(CallableStatement cs, int columnIndex) throws SQLException { // 从 CallableStatement 中获取 JSON 字符串,并将其转化为 MyJsonArray 对象 return parseJson(cs.getString(columnIndex)); } private MyJsonArray parseJson(String jsonString) { // 将 JSON 字符串转化为 MyJsonArray 对象 if (StringUtils.isEmpty(jsonString)) { return null; } return JSON.parseObject(jsonString, MyJsonArray.class); } } ``` 3. 在实体类的 `resultMap` 中,使用 `typeHandler` 属性指定刚才创建的 `MyJsonArrayTypeHandler` 类型处理器。代码如下: ```xml <resultMap id="myResultMap" type="com.example.MyEntity"> <id property="id" column="id" /> <result property="jsonArray" column="json_column" javaType="com.example.MyJsonArray" typeHandler="com.example.MyJsonArrayTypeHandler" /> </resultMap> ``` 这样就可以将 MySQL 中的 JSON 对象数组映射到 Java 对象中了。需要注意的是,如果 JSON 对象数组中的元素类型不一致,需要在 `MyJsonArray` 类中定义多个字段来存储不同类型的元素。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值