JAVA,ResultSet 可以有 numberOfColumns() 以便我们甚至不关心选择查询中返回的列数吗?

标签 java

这是我的问题,我有一个连接许多表的选择查询,并且每个表都有许多列。我只想选择所有内容并将结果作为文本(制表符分隔)提供给用户,以便用户可以将该文本复制到 Excel 中并在 Excel 中使用结果。

如果是这种情况,那么我不需要在 select 查询中指定字段,只需 select * from 就足够了。但是,我陷入困境,因为我需要 getString ex getString(1); getString(2);

的特定号码
String sql="select * from tb1 join tb2 .......";
preparedStmt=myCon.prepareStatement(sql);
ResultSet results=preparedStmt.executeQuery();
String text="";
while(results.next()){
    int no=results.noOfColumns; //here is what i need
    for(int i=0; i<no; i++){
       String s=results.getString(i+1); 
      text+=s+"\t";
    }
    text+="\n"; 
}

最佳答案

ResultSet 包含关联的 ResultSetMetaData,其中包含有关 ResultSet 中列的所有信息。您只需将其拉出并获取列数即可:

    ResultSetMetaData metadata = results.getMetaData();
    int no = metadata.getColumnCount();

你可以去看看the ResultSetMetaData API了解您可以用它做的所有其他事情。

关于JAVA,ResultSet 可以有 numberOfColumns() 以便我们甚至不关心选择查询中返回的列数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23440036/

相关文章:

java - 如何在 org.jboss.logging 中设置运行时日志记录

java - 当 Exception 类单独可以处理所有类型的异常时,其他 Exception 类的需求是什么?

java - Java中无法分割字符串

java - 当我在 macbook 上编译 MANIFEST.MF 文件时,它不会加载

java - 从 ArrayList 生成定义的集合

java - 如何在完整项目中以 Debug模式跟踪 System.out.println

java - Emma 代码覆盖工具错误 - 未找到 Main 方法

Java - 扫描仪导致循环运行两次

java - 为什么使用osgi?

java - spring 4 @PropertySource 相对路径