首页 > 基础资料 博客日记

springboot~mybatis-plus中使用TypeHandler做类型映射

2024-04-23 18:00:03基础资料围观278

本篇文章分享springboot~mybatis-plus中使用TypeHandler做类型映射,对你有帮助的话记得收藏一下,看Java资料网收获更多编程知识

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://www.cnblogs.com/lori/p/18153452
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:jacktools123@163.com进行投诉反馈,一经查实,立即删除!

标签:

相关文章

本站推荐

标签云