打印“中的所有列”;选择*”;java中的查询

打印“中的所有列”;选择*”;java中的查询,java,sql,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.print

我想知道如何用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("*");
您必须在方法中提供列名。目前,它假定
*
为不正确的列名,因此显示错误

您必须以如下方式提供列名:

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);  
}
ResultSetMetaData md=rs.getMetaData();
int colCount=md.getColumnCount();

对于(int i=1;i您不能指定
*
来获取值。对于您的查询返回并希望打印的每一列,请指定:

 String all = rs.getString("your_column_name");
或:


其中“i”是查询输出中打印列的顺序

查询中的
*
表示选择表中的所有列

但是在执行查询之后,您的结果将具有所有列的名称。 因此,要访问结果,您必须执行以下操作:

String a_column_value = rs.getString("a_column_name");

您可以使用以下通用方法:

c = getConnection();
st = c.createStatement();
rs = st.executeQuery("select * from MY_TABLE");

ResultSetMetaData metaData = rs.getMetaData();
int columnCount = metaData.getColumnCount();

while(rs.next()) {
    for(int columnIndex = 1; columnIndex <= columnCount; columnIndex++) {
        Object object = rs.getObject(columnIndex);
        System.out.printf("%s, ", object == null ? "NULL" : object.toString());
    }
    System.out.printf("%n");
}
c=getConnection();
st=c.createStatement();
rs=st.executeQuery(“从我的表格中选择*);
ResultSetMetaData元数据=rs.getMetaData();
int columnCount=metaData.getColumnCount();
while(rs.next()){

对于(int columnIndex=1;columnIndex)您需要打印查询本身还是此查询的结果?请尝试rs.getString(1);尝试rs.getString(2)检查此rs.getString(1);尝试rs.getString(2)
c = getConnection();
st = c.createStatement();
rs = st.executeQuery("select * from MY_TABLE");

ResultSetMetaData metaData = rs.getMetaData();
int columnCount = metaData.getColumnCount();

while(rs.next()) {
    for(int columnIndex = 1; columnIndex <= columnCount; columnIndex++) {
        Object object = rs.getObject(columnIndex);
        System.out.printf("%s, ", object == null ? "NULL" : object.toString());
    }
    System.out.printf("%n");
}