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