【发布时间】:2017-08-10 10:14:08
【问题描述】:
我想我是太累了还是什么..这里看不出有什么不好的。
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?
附:在数据库中,我确实完全插入了我的项目表,是的,我仔细检查了被询问的值。
【问题讨论】:
-
循环中要处理的最后一条记录的
project_id值为零。 -
你为什么要做setString?通常键是整数。 setInt 会更合适。
-
单步调试 IDE 中内置的调试器中的代码。使用调试器是首先要做的事情,而不是最后要做的事情。而在 SO 上发布则接近列表的末尾。顺便说一句,
while是错误的控制结构。它可以工作,但它是从 single 行中检索值的错误结构。if是处理单行时的正确结构。 -
确保你的while循环被执行了。
-
或者第一次调用
rs.next()返回false或者最后一次调用rs.getInt("project_id");返回0