mybatis-plus中,如果數(shù)據(jù)表字段類型與java實(shí)體字段類型不一樣,這時(shí)就需要做類型映射與轉(zhuǎn)換了,我們一般可以實(shí)現(xiàn)TypeHandler接口,或者繼承抽象類BaseTypeHandler,我們下面舉例來(lái)說(shuō)明一下它的使用方法。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-856728.html
場(chǎng)景
- 數(shù)據(jù)表里字段是varchar,java里是List集合,例如:我的愛(ài)好標(biāo)簽
- 數(shù)據(jù)表里字段是varchar,java里是個(gè)Map對(duì)象,例如:我曾經(jīng)居住過(guò)的地方
操作步驟
實(shí)體類
- 類注解的參數(shù)
autoResultMap = true
,它影響TypeHandler中的getResult方法的執(zhí)行 - 字段注解
@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));
}
獲取結(jié)果
文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-856728.html
到了這里,關(guān)于springboot~mybatis-plus中使用TypeHandler做類型映射的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!