急急急!sql夺标查询返回多条结果集,用list接收,结果结果集是Object类型,里面的查询结果取不出来!

lqNewReborn 2018-01-19 11:59:50
主要问题代码在这边,findBySql返回的是List,我用一个listl来接收。Debug可以看到list中每个元素(查询结果集)的内容,但是代码想取出来的时候报错,说Object不能强转list

求解!!!
List list = new ArrayList();
List resultList = new ArrayList();

list = this.objectDao.findBySql(sql);

for(int i = 0;i<list.size();i++){
DeptVO deptVO = new DeptVO();
List<Object> listObj = (ArrayList<Object>) list.get(i);
System.out.println( listObj instanceof Object);
System.out.println("****inservice");
deptVO.setDeptName(listObj.get(0).toString());
deptVO.setDeptType(listObj.get(1).toString());
deptVO.setParentDeptId((Integer.parseInt(listObj.get(2).toString())));
deptVO.setUsersNum((Integer.parseInt(listObj.get(3).toString())));
resultList.add(deptVO);
}

这个是Debug时整个list :[[Ljava.lang.Object;@8e7277, [Ljava.lang.Object;@1fcfa82, [Ljava.lang.Object;@1a271ed, [Ljava.lang.Object;@1e59f3e, [Ljava.lang.Object;@39c13e, [Ljava.lang.Object;@1bdf384, [Ljava.lang.Object;@1be6a42, [Ljava.lang.Object;@32494a];listkeyi 看到其中的查询结果属性
...全文
677 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
lqNewReborn 2018-01-23
  • 打赏
  • 举报
回复
问题已经解决了,要用Object []来接收List里面的每一个元素,贴上解决代码。 for(int i = 0;i<list.size();i++){ DeptVO vo = new DeptVO(); Object []obj = (Object []) list.get(i); vo.setDeptId(obj[1]==null?0:Integer.parseInt(obj[1].toString())); vo.setDeptName(obj[2]==null?"":obj[2].toString()); vo.setDeptType(obj[3]==null?"":obj[3].toString()); int parentDeptId=obj[4]==null?0:Integer.parseInt(obj[4].toString()); int deptId = obj[1]==null?0:Integer.parseInt(obj[1].toString()); 思路就是这样
lqNewReborn 2018-01-23
  • 打赏
  • 举报
回复
引用 3 楼 qq_34350475 的回复:
this.objectDao.findBySql()你的这个方法查出来的是多个结果吧,应该在dao里就控制它返回List<DeptVo>类型,然后这里用List<DeptVo>接收,数据层要和业务层尽量分开
你说的是把sql查询这些房在dao里面吧,我仿照公司的代码写的,我看别的代码都写在service·impl里面,我也就这么写了。问题已经解决了,要把返回的集合强转为Object类型数组,在依次取值。
lqNewReborn 2018-01-23
  • 打赏
  • 举报
回复
引用 2 楼 oliver_105397 的回复:
你这个方法返回的是什么类型:this.objectDao.findBySql()
返回的是List,问题已经解决了,谢谢!
qq_34350475 2018-01-20
  • 打赏
  • 举报
回复
this.objectDao.findBySql()你的这个方法查出来的是多个结果吧,应该在dao里就控制它返回List<DeptVo>类型,然后这里用List<DeptVo>接收,数据层要和业务层尽量分开
ooo-ooo 2018-01-20
  • 打赏
  • 举报
回复
你这个方法返回的是什么类型:this.objectDao.findBySql()
weixin_39670158 2018-01-20
  • 打赏
  • 举报
回复
List<Object> listObj = (ArrayList<Object>) list.get(i); 这里应该要强转VO吧

62,616

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧