为什么 JDBC 查询多条数据时只能得到一条

undefined-- 2017-10-18 07:07:10

List<ProjectEntity> list=new ArrayList<ProjectEntity>();
Connection conn = DBUtil.getConn();
PreparedStatement pstmt = null;
ResultSet resultSet = null;
StringBuffer sb=new StringBuffer(" select p.项目CODE as projectcode, p.项目名称 as projectname ");
sb.append(" from SM_PROJECT_PMP P left join SM_PROJECT_GROUP_PMP M on m.项目CODE = p.项目CODE ");
sb.append(" where p.项目状态 = '否' AND m.是否在项目 = '是' AND p.项目分类大类 != 'GM' AND m.人员CODE ='");
sb.append(user_mail);
sb.append("'");
try {
pstmt = conn.prepareStatement(sb.toString());
resultSet = pstmt.executeQuery(sb.toString());

if (resultSet.next()) {
resultSet.getRow();// 得到 1
ProjectEntity entity=new ProjectEntity();
entity.setProjectnameSub(resultSet.getString("projectname"));
entity.setProjectcodeSub(resultSet.getString("projectcode"));
list.add(entity);
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
DBUtil.close(resultSet);
DBUtil.close(pstmt);
DBUtil.close(conn);
}
return list;



在数据库中该条sql可以查询出53条数据,为什么使用jdbc查询视图时只能得到一条?
...全文
2002 20 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复 1
把if(resultSet.next())换成while(resultSet.next())
戎码一生灬 2018-12-20
  • 打赏
  • 举报
回复
你趁它不注意多查几条不就行了
a_b_a_b_a_b_a_b 2018-12-19
  • 打赏
  • 举报
回复
没有循环啊,当然只有一条了。 把if换成while了。
weixin_39730077 2018-12-19
  • 打赏
  • 举报
回复
引用 7 楼 undefined-- 的回复:
我蠢了,看错了,把if当成while了
加一
leijie_csdn 2018-12-19
  • 打赏
  • 举报
回复
引用 17 楼 weixin_39730077 的回复:
引用 7 楼 undefined-- 的回复:
我蠢了,看错了,把if当成while了
加一
加100
gggggame 2018-06-19
  • 打赏
  • 举报
回复
出现问题多debug
getdate 2018-06-15
  • 打赏
  • 举报
回复
引用 7 楼 qq_29767649 的回复:
我蠢了,看错了,把if当成while了
可以说说,你们表中的字段名称为何是中文的呢?是基于什么考虑呢?
Dkodak 2018-06-13
  • 打赏
  • 举报
回复
把if改成while(resultSet.next())就好了
stacksoverflow 2018-06-12
  • 打赏
  • 举报
回复
if换成while
老王就是我 2018-06-12
  • 打赏
  • 举报
回复
没有循环呗,if是只判断一次
  • 打赏
  • 举报
回复
while()而不是if
zhengmeng02 2017-10-19
  • 打赏
  • 举报
回复

while (resultSet.next()){
				XXX
}
聪头 2017-10-19
  • 打赏
  • 举报
回复
没看到循环语句
学习呀 2017-10-19
  • 打赏
  • 举报
回复
循环循环循环
Jasen3 2017-10-19
  • 打赏
  • 举报
回复
第7行后面是不是少了一个空格啊
xwn_2016 2017-10-19
  • 打赏
  • 举报
回复
if (resultSet.next()) 换成 while(resultSet.next())试试
江湖南哥 2017-10-19
  • 打赏
  • 举报
回复
if (resultSet.next()) 换成 while(resultSet.next())试试
zhouyusunquan 2017-10-19
  • 打赏
  • 举报
回复
引用 6 楼 yuxiangaaaaa 的回复:
查询的结果是对的,你没有读取出来 while(resultSet.next){ resultSet.getRow();// 得到 1 ProjectEntity entity=new ProjectEntity(); entity.setProjectnameSub(resultSet.getString("projectname")); entity.setProjectcodeSub(resultSet.getString("projectcode")); list.add(entity); }
这样就对了,要是这样还不对,说明这样只能查询出一条数据
undefined-- 2017-10-19
  • 打赏
  • 举报
回复
我蠢了,看错了,把if当成while了
自由自在_Yu 2017-10-19
  • 打赏
  • 举报
回复
查询的结果是对的,你没有读取出来 while(resultSet.next){ resultSet.getRow();// 得到 1 ProjectEntity entity=new ProjectEntity(); entity.setProjectnameSub(resultSet.getString("projectname")); entity.setProjectcodeSub(resultSet.getString("projectcode")); list.add(entity); }

81,122

社区成员

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

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