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

特定于Java、MySQL的查询不返回任何内容,java,mysql,Java,Mysql,我试图选择表中单个列的所有不同值,但它始终不返回任何值。我检查过的东西: 权限-我使用的帐户具有执行所有操作的权限 查询正确-我正在打印查询,它在phpMyAdmin中工作 实际已连接-它正在连接到正确的数据库,因为“从用户中选择*”是有效的 异常-检查一般异常,但没有任何异常 代码: 公共结果集执行(字符串sql){ 试一试{ 语句stmt=conn.createStatement(); 结果集rs=null; System.out.println(sql); if(stmt.execute(

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

  • 权限-我使用的帐户具有执行所有操作的权限
  • 查询正确-我正在打印查询,它在phpMyAdmin中工作
  • 实际已连接-它正在连接到正确的数据库,因为“从用户中选择*”是有效的
  • 异常-检查一般异常,但没有任何异常
  • 代码:

    公共结果集执行(字符串sql){ 试一试{ 语句stmt=conn.createStatement(); 结果集rs=null; System.out.println(sql); if(stmt.execute(sql)){ rs=stmt.getResultSet(); } ResultSetMetaData meta=rs.getMetaData(); int length=meta.getColumnCount(); System.out.println(“打印结果”); while(rs.next()){ for(int i=1;i 打印输出:

    连接到数据库从
    users
    中选择
    userName
    Print results DONE 1

    1是函数外部打印的列数。显然,该查询不会得到不同的值,这只是我尝试的一个更简单的查询。有什么想法吗?感谢

    中的列从1开始编制索引,并返回所选列的数量

    因此,您需要将for循环从1替换为
    长度
    包含而非独占:

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