作为新晋程序员,刚开始接触工作的时候遇到了一个问题。前端传过来一个List集合,需要将集合存入数据库,实体类字段为List类型,数据库中为varchar。而数据库中是不能直接存List集合的,这就需要做一个转换。
当时找了好久也没解决,后来看到下面的文章才解决,同时也加上了自己的理解,在此记录,希望能帮到正在看此篇文章的你。
private List<String> xxxxx;
我在网上找方案时参考了这篇文章使用Mybatis将List集合数据存入数据库
这里的思路是,利用mytais提供的类型转换接口TypeHandler
来做。
private List<String> xxxxx;
实体类字段
TypeHandler代码在原文章中可以直接拿来用,这里仅对自己使用时遇到的问题做补充。
1.持久层代码,要加上类型转换器
#{xxxx,typeHandler=ListToVarcharTypeHandler}
2.实体类加上注解
@TableField(typeHandler = ListToVarcharTypeHandler.class)
private List<String> xxxx;
其余部分,直接使用即可。
--------------------------------更新-------------------------------
干了快2年java开发后,才发现不需要这么麻烦,直接将list转为json字符串存入表中即可。