在ibatis中查询返回List集合的问题

个人笔记

记于2019年9月17日

今天在做查询时,返回的是list集合,由于这个list集合比较简单,不想做实体(VO)映射,像单纯的返回一个list集合,就遇到问题了
list集合里全是空的(我在数据库里测试过,不可能是空的,那只有哪里写错了)
在ibatis中查询返回List集合的问题_第1张图片
看了下我的xml文件,很有可能就是resultClass这里写错了,于是我把这个java.util.List 改成了 java.util.ArrayList重启试了下,不行,问题没有解决,于是就百度了下
在ibatis中查询返回List集合的问题_第2张图片

百度说如果返回List写成resultClass="java.lang.String"就好了(注意这个泛型),

(之后看了下,很多博客都是这么写的)
于是就试了下,还果真好了,但是有点小问题,我的sql语句查的是两个字段,但是返回的list集合只有一个id,没有我查的name字段
想了想,我的list集合里存的是一个Map,这里(resultClass)写的是String,写上Map是不是就可以了?接下来就将resultClass="java.lang.String"改成了resultClass=“java.util.HashMap”,重启,就好了
在ibatis中查询返回List集合的问题_第3张图片

结论:如果返回List写成resultClass="java.lang.String"就好了;如果返回List写成resultClass="java.util.HashMap"就好了

顺便再记一下xml与实体的对应关系
这是个xml文件,DaoImpl调用去访问数据库的
在ibatis中查询返回List集合的问题_第4张图片
这是传入的对象(写出了部分)
在ibatis中查询返回List集合的问题_第5张图片

总结:prepend写数据库拼接字段,不建议写Where

property写实体类的属性

在ibatis中查询返回List集合的问题_第6张图片

你可能感兴趣的:(java后端及框架)