java - 在java中打印 "Select *"查询中的所有列

标签 java sql

我想知道如何在java中打印“Select *”查询?我尝试了这个函数,但执行后它给我这条消息“无效的列名”。

public static void ask() throws Exception {
    try {
        java.sql.Statement s= conn.createStatement();
        ResultSet rs = s.executeQuery("SELECT * FROM DB1.T1");

        System.out.println("**************Resultats**************");
        while ( rs.next() ) {
            String all = rs.getString("*");
            System.out.println(all);
        }
        conn.close();
    } catch (Exception e) {
        System.err.println("exception! ");
        System.err.println(e.getMessage());
    }
}

最佳答案

这一行是问题所在:

String all = rs.getString("*");

您必须在 getString() 中提供列名称方法。目前它假定 * 作为列名,这是不正确的,因此显示错误。

您必须在其中提供列名称,如下所示:

String all = rs.getString("Column_Name");

编辑:-

如果你不想写列名,可以尝试这个

ResultSetMetaData md = rs.getMetaData(); 
int colCount = md.getColumnCount();  

for (int i = 1; i <= colCount ; i++){  
String col_name = md.getColumnName(i);  
System.out.println(col_name);  
}

关于java - 在java中打印 "Select *"查询中的所有列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23291346/

相关文章:

java - 为什么我的 boolean 变量搞砸了?

Java - 用于多个测试的模拟私有(private)静态构造函数

java - 类路径无效标志 - Java

mysql - 两次查询 SQL 列以构建 HTML 表

sql - 是否可以在 PostgreSQL 中创建一个包含子午线指示器的时间戳列?

php - Mysql服务器数据插入错误

java - 关于Java中的验证案例和临时变量的愚蠢问题

mysql - 如何修复过程 SQL 中的错误?

sql - 启用其中已包含数据的标识列?

java - StringBuilder.append 链是否比字符串连接更有效?