Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JAVA DB:显示结果集的整行,无需对列进行迭代_Java_Resultset - Fatal编程技术网

JAVA DB:显示结果集的整行,无需对列进行迭代

JAVA DB:显示结果集的整行,无需对列进行迭代,java,resultset,Java,Resultset,是否有任何方法可以显示结果集的所有列,而无需对列进行迭代 基本上,我需要节省for循环部分所消耗的处理时间。您必须迭代resultset行,以获取列,这是没有办法的,即使您使用任何包装器可以为您提供所有列,在内部它仍然会在每个resultset的行上迭代以获取数据 如果您想要一种通用的方法来迭代一个表的所有列,您可以使用这种方法 ResultSetMetaData md = rs.getMetaData(); int colCount = md.getColumnCount(); for

是否有任何方法可以显示结果集的所有列,而无需对列进行迭代


基本上,我需要节省for循环部分所消耗的处理时间。

您必须迭代resultset行,以获取列,这是没有办法的,即使您使用任何包装器可以为您提供所有列,在内部它仍然会在每个resultset的行上迭代以获取数据

如果您想要一种通用的方法来迭代一个表的所有列,您可以使用这种方法

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();

对于(inti=1;i,即使您的代码没有在行上迭代,您要寻找的任何解决方案都将是

你不能打印你没有读过的东西

使现代化 现在我在想,其实有一种方法,但这不是一种好的做法。然而,问题是,如果你能做到,而不是你应该做到,那么这里什么都没有:

您可以修改SQL查询以将所有行合并到一行中,在这种情况下,您可以显示结果集的所有列,而无需对这些行进行迭代

请记住,这不仅是一种不好的做法,还可能是在其他地方进行迭代

使用SQL Server

使用MySQL


使用Oracle

你想要一种神奇的不迭代的迭代方式吗?为什么你认为这是可能的?你怎么知道迭代是一个昂贵的操作?提示,迭代并不昂贵。这是你在循环中编写的代码花费的时间。你甚至确定有性能问题吗?你是怎么知道的你决定了吗?你有什么证据?就目前而言,这个问题是不可回答的。@JimGarrison你刚刚用另外6个问题回答了他的问题:(这叫做要求澄清,这就是注释的目的。我的代码基本上从DB读取数据(sql在XML文件中配置)并将数据写入文件。最初我使用了两次迭代,第一次是在读取时,第二次是在写入时。2亿条记录需要4个多小时。然后,我通过在读取过程中引入stringbuilder删除了第二次迭代,并将该字符串中所有250列以管道分隔。现在需要一个多小时。我使用了其他一些性能增强过程,如线程和并行运行作业。我想知道性能是否可以进一步增强。我希望这能回答所有问题。不能这样做。原因是我有一个逻辑来动态转换代码中的几个列。如果我使用一个列并附加所有列,我将无法使用t转换逻辑。