mybatis-plus读取json类型的方法实现
时间: 2023-06-05 21:47:39 浏览: 553
mybatis-plus读取JSON类型的方法实现
Mybatis-plus支持读取json类型数据,方法如下:
1. 首先,在数据库中创建一个json类型的字段,如下所示:
CREATE TABLE `user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) DEFAULT NULL,
`address` varchar(255) DEFAULT NULL,
`info` json DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
2. 在Java实体类中,为info字段添加注解@JSONField,如下所示:
public class User {
private Long id;
private String name;
private String address;
@JSONField(serializeUsing = JSONObjectSerializer.class, deserializeUsing = JSONObjectDeserializer.class)
private JSONObject info;
// 省略getter和setter方法
}
3. 在Mybatis-plus的mapper接口中,使用@Results和@Result注解映射json字段,如下所示:
@Results(id = "userResultMap", value = {
@Result(property = "id", column = "id", id = true),
@Result(property = "name", column = "name"),
@Result(property = "address", column = "address"),
@Result(property = "info", column = "info", javaType = JSONObject.class, typeHandler = JSONTypeHandler.class),
})
public interface UserMapper extends BaseMapper<User> {}
4. 在配置文件中,配置typeHandlersPackage为org.apache.ibatis.type,如下所示:
mybatis-plus:
configuration:
map-underscore-to-camel-case: true
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
type-handlers-package: org.apache.ibatis.type
5. 最后,就可以在mapper接口中使用Mybatis-plus提供的方法读取json类型数据了,如下所示:
User user = userMapper.selectOne(Wrappers.<User>lambdaQuery().eq(User::getId, 1L));
JSONObject info = user.getInfo();
以上就是Mybatis-plus读取json类型数据的方法实现。
阅读全文