springboot~mybatis-plus中使用TypeHandler做范例映射

打印 上一主题 下一主题

主题 905|帖子 905|积分 2715

mybatis-plus中,如果数据表字段范例与java实体字段范例不一样,这时就必要做范例映射与转换了,我们一般可以实现TypeHandler接口,大概继承抽象类BaseTypeHandler,我们下面举例来说明一下它的使用方法。
场景


  • 数据表里字段是varchar,java里是List集合,例如:我的爱好标签
  • 数据表里字段是varchar,java里是个Map对象,例如:我曾经居住过的地方
操作步骤

实体类


  • 类注解的参数 autoResultMap = true,它影响TypeHandler中的getResult方法的执行
  • 字段注解 @TableField(typeHandler = ListTypeHandler.class)
  1. @Data
  2. @TableName(value = "t_user", autoResultMap = true)
  3. public class TUser extends BaseEntity {
  4.         private String username;
  5.         @TableField(typeHandler = MapTypeHandler.class)
  6.         private Map extensionInfo;
  7.         @TableField(typeHandler = ListTypeHandler.class)
  8.         private List<String> likeList;
  9. }
复制代码
插入方法
  1.         @Test
  2.         public void insert() {
  3.                 TUser user = new TUser();
  4.                 user.setUsername("lind");
  5.                 user.setExtensionInfo(new HashMap() {{
  6.                         put("city", "beijing");
  7.                         put("area", "shijingshan");
  8.                 }});
  9.                 user.setLikeList(java.util.Arrays.asList("basketball", "football"));
  10.                 userDao.insert(user);
  11.         }
复制代码
获取方法
  1.         @Test
  2.         public void read() {
  3.                 QueryWrapper<TUser> wrapper = new QueryWrapper<>();
  4.                 wrapper.lambda().eq(TUser::getCreateBy, 1);
  5.                 log.info("user1:{}", userDao.selectList(wrapper));
  6.         }
复制代码
获取结果



免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

玛卡巴卡的卡巴卡玛

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表