Mybatis批量插入转换成list集合的问题以及解决方案

问题:

由于项目中需要批量插入的功能,然后我就用到了阿里的json包,将json数据转换成list集合在批量添加到数据库,但是这个过程中,我突然发现一个问题,之前接收前台传来的值是有的,但转换之后某些字段的值没有了,后面发现,原来是Mybatis自动生成插件做的怪,将实体类赋setter和getter方法时,并没有将属性大写,也就是说原本我的实体字段为gName;setter方法之后为setgName,这就违反了命名规则,但是阿里json包就出现了不能转换报Null的问题,经过试验,终于找到了解决方案:

解决方案

  • 1.如果你不想用别的方法,且Pojo类字段不是很多的话,直接将所有的setter和getter方法去掉,用eclipse自动生成的setter和getter方法
  • 2.当然,这种方法是已经废弃的,但是还可以使用,至于有什么漏洞我就不知道了
    JSONArray Array1 = JSONArray.fromObject(Declaration);
    //List<CustomsDeclareBillDetail> detail = Array1.toList(Array1, CustomsDeclareBillDetail.class);
    
  • 3.这种方法的结果和上面是一样的,但还是极力推荐使用这种方案。
    JSONArray jsonArray = JSONArray.fromObject(json);
    List<String> list2 = (List) JSONArray.toCollection(jsonArray);
    

 上一篇
mybatis中返回list集合为空的解决方法 mybatis中返回list集合为空的解决方法
一.本人出现的问题是sql语句没报错,但是由于忽略了已修改的代码的传递参数的值,导致查询出来的结果为空,在controller中的参数互换一下就有值了 二.用mybits查询数据库时,如果参数已传入sql,sql也已经执行了,但是返回结果为
2019-01-20
下一篇 
数据库是dateTime类型传入参数是String类型如何转换的解决方案 数据库是dateTime类型传入参数是String类型如何转换的解决方案
最近遇到一个头疼的问题,在进行条件查询时发现查询没有结果,后面发现数据库字段是dateTime类型,而我传入的是String类型,这就导致它不识别你传入的参数无法作比较而爆出异常,在这里贴出本人的解决方案: create_time是你的数据
2019-01-20
  目录