+-
关于mybatis处理json疑惑.

对于mybatis处理json mybatis处理json 官方案例

@MappedTypes({ Pet.class, Car.class })
public class JsonTypeHandler<T> extends BaseTypeHandler<T> {

  private Class<T> type;

  public JsonTypeHandler(Class<T> type) {
    if (type == null) {
      throw new IllegalArgumentException("Type argument cannot be null");
    }
    this.type = type;
  }
.....

但是网络上教程都有@MappedJdbcTypes(JdbcType.VARCHAR)
比如这样

@RequiredArgsConstructor
@MappedTypes(JsonNode.class)
@MappedJdbcTypes(JdbcType.VARCHAR)
public class JsonNodeTypeHandler extends BaseTypeHandler<JsonNode> {

    private final ObjectMapper objectMapper;

    @Override
    public void setNonNullParameter(PreparedStatement ps, int i, JsonNode parameter, JdbcType jdbcType) throws SQLException {
        String json = parameter.toString();
        ps.setString(i, json);
    }

MyBatis+Jackson 案例

不加@MappedJdbcTypes(JdbcType.VARCHAR) 可能出现那些问题