Java 为什么ResultSet在执行后返回0值?
我想我太累了还是怎么了。。这里什么都看不见Java 为什么ResultSet在执行后返回0值?,java,mysql,Java,Mysql,我想我太累了还是怎么了。。这里什么都看不见 String select = "SELECT project_id FROM project WHERE project_key = ?"; PreparedStatement preparedStatement1 = con.prepareStatement(select); preparedStatement1.setString(1, project_key); ResultSet rs = prepa
String select = "SELECT project_id FROM project WHERE project_key = ?";
PreparedStatement preparedStatement1 = con.prepareStatement(select);
preparedStatement1.setString(1, project_key);
ResultSet rs = preparedStatement1.executeQuery();
int project_id = 0;
while(rs.next()) {
project_id = rs.getInt("project_id");
}
System.out.println(project_id);
问题是为什么project_id返回我0
另外,在数据库中,我确实完全插入了我的项目表,是的,我仔细检查了所要求的值 尝试以下代码,查看结果集是否返回任何值
rs.first();
System.out.println(rs.getInt("project_id"));
如果没有看到任何值,则表示问题与查询有关。不返回任何内容,且集合为空。
(我本打算对此发表评论,但我没有足够的声誉)将代码更改为
while(rs.next()) {
int project_id = rs.getInt("project_id");
System.out.println(project_id);
}
我猜您将看不到任何值(如果project_键有问题)
或者多个值,最后一个值将为零 循环中要处理的最后一条记录的
project\u id
值为零。为什么要执行setString?通常键是整数。setInt更合适。在IDE内置的调试器中逐步完成代码。找到调试器是第一件事,而不是最后一件事。然而,在SO上发布已接近列表的末尾。顺便说一句,而
是错误的控制结构。它可以工作,但是从一行中检索值的结构是错误的<当处理单行时,code>if是正确的结构。确保执行了while循环。或者对rs.next()的第一次调用返回false
或者对rs.getInt(“项目id”)的最后一次调用
返回0
为什么这个答案被否决了两次,而它是被接受的答案?我没有否决,但可以认为它是错误的。因为它可以抛出异常。