gpt4 book ai didi

Java、MySQL 特定查询不返回任何内容

转载 作者:行者123 更新时间:2023-11-29 21:47:19 26 4
gpt4 key购买 nike

我试图选择表中单个列的所有不同值,但它始终不返回任何内容。我检查过的事情:

  1. 权限 - 我使用的帐户有权执行所有操作
  2. 查询正确 - 我正在打印查询并且它在 phpMyAdmin 中有效
  3. 实际已连接 - 由于“SELECT * FROM users”有效,因此它正在连接到正确的数据库。
  4. 异常 - 检查了是否有一般异常,没有发现任何异常。

代码:

public ResultSet execute(String sql) {
try {
Statement stmt = conn.createStatement();
ResultSet rs = null;
System.out.println(sql);
if (stmt.execute(sql)) {
rs = stmt.getResultSet();
}
ResultSetMetaData meta = rs.getMetaData();
int length = meta.getColumnCount();
System.out.println("Print results");
while (rs.next()) {
for (int i=1; i< length; i++) {
System.out.println(rs.getString(i));
}
}
System.out.println("DONE");
return rs;

} catch (SQLException e) {
// TODO Auto-generated catch block
System.out.println("SQL: " + e.getSQLState());
System.out.println("2: " + e.getMessage());
System.out.println("3: " + e.getErrorCode());
}
System.out.println("Nothing found");
return null;
}

打印输出:

连接到数据库 SELECT userName FROM users 打印结果 DONE 1

1 是在函数外部打印的列数。显然该查询没有获得不同的值,这只是我正在尝试的一个更简单的查询。有任何想法吗?谢谢

最佳答案

ResultSet 中的列索引从 1 和 getColumnCount 开始返回所选列的数量。

因此,您需要将 for 循环替换为从 1 到 length(包括但不包括):

for (int i = 1; i <= length; i++) { // <-- inclusive here
System.out.println(rs.getString(i));
}

关于Java、MySQL 特定查询不返回任何内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34003542/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com