java - 我的查询有什么问题??它完全没有错误
问题描述
我在 Java 中的 sql 查询有问题。正如您在下面看到的,查询应该返回 rph_id 但它只返回 0,所以它只继续执行 else 方法。
起初,我没有使用 prepareStatement,但很多人建议我使用 prepareStatement。但它仍然行不通。在检查了这两个建议之后,我认为我的问题出在查询上,但我不知道是什么。
public class RphDAO{
static int rph_id;
public static RPHS getRph(RPHS rph) {
try {
currentCon = ConnectionManager.getConnection();
ps=currentCon.prepareStatement("select * from rphs where rph_id=?");
ps.setInt(1, rph_id);
ResultSet rs = ps.executeQuery();
if (rs.next()) {
rs.getInt("rph_id");
rph.setRph_id(rph_id);
rph.setValid(true);
} else {
rph.setValid(false);
}
}
...
return rph;
}
}
它应该返回一个现有的 id,而不是 0。
解决方案
这里:
if (rs.next()) {
rs.getInt("rph_id");
rph.setRph_id(rph_id);
rph.setValid(true);
您从 ResultSet ... 中获取rs
一个值,然后将该结果丢弃。
可能你的意思是这样的:
rph_id = rs.getInt("rph_id");
另一方面,您请求那些具有 rph_id==1 的条目,所以我看不到1
您希望在这里找到的其他值。最有可能的是,您想查看该结果集的其他部分,并以某种方式将它们拉入某个对象的变量/字段中。
似乎OP 根本不熟悉使用 ResultSet,因此我认为真正的答案是:去阅读关于这个主题的好教程。您无法通过反复试验来学习如何使用新的 API。阅读它的文档,或者一个向您展示如何正确使用它的好教程!
推荐阅读
- symfony - 带有 gitlab-ci 的 Phpstan 找不到 srcApp_KernelDevDebugContainer.xml,因为它在 gitignore 中?
- date - 谷歌脚本 - 日期错误的月份
- vba - 使用 VBA 在 MS Word 中组合富文本内容控件内容
- loops - 使用 DO 循环来简化重复的代码
- c# - 将多个 csv 文件的内容保存到可搜索的数组 C#
- azure - 如何解决“指定的 blob 不存在。HTTP 状态代码:使用 Start-AzStorageBlobCopy 时出现 404 错误
- unit-testing - 如何以几乎 100% 的覆盖率对此类进行单元测试?
- javascript - 通过动画从高度 0 到高度 100%
- postgresql - 使用 Postgres 排除约束限制匹配特定条件的表行数?
- c - OpenMP 并行化随机序列