springboot~mybatis-plus中使用TypeHandler做范例映射
mybatis-plus中,如果数据表字段范例与java实体字段范例不一样,这时就必要做范例映射与转换了,我们一般可以实现TypeHandler接口,大概继承抽象类BaseTypeHandler,我们下面举例来说明一下它的使用方法。场景
[*]数据表里字段是varchar,java里是List集合,例如:我的爱好标签
[*]数据表里字段是varchar,java里是个Map对象,例如:我曾经居住过的地方
操作步骤
实体类
[*]类注解的参数 autoResultMap = true,它影响TypeHandler中的getResult方法的执行
[*]字段注解 @TableField(typeHandler = ListTypeHandler.class)
@Data
@TableName(value = "t_user", autoResultMap = true)
public class TUser extends BaseEntity {
private String username;
@TableField(typeHandler = MapTypeHandler.class)
private Map extensionInfo;
@TableField(typeHandler = ListTypeHandler.class)
private List<String> likeList;
}插入方法
@Test
public void insert() {
TUser user = new TUser();
user.setUsername("lind");
user.setExtensionInfo(new HashMap() {{
put("city", "beijing");
put("area", "shijingshan");
}});
user.setLikeList(java.util.Arrays.asList("basketball", "football"));
userDao.insert(user);
}获取方法
@Test
public void read() {
QueryWrapper<TUser> wrapper = new QueryWrapper<>();
wrapper.lambda().eq(TUser::getCreateBy, 1);
log.info("user1:{}", userDao.selectList(wrapper));
}获取结果
https://img2024.cnblogs.com/blog/118538/202404/118538-20240423174910468-775269309.png
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]