gpt4 book ai didi

java - 如何从结果集中查找每列中最长字段的长度

转载 作者:太空宇宙 更新时间:2023-11-03 11:51:04 26 4
gpt4 key购买 nike

我知道我可以通过执行以下命令从特定表中找到列中最长的字段:

Statement s;
ResultSet r;
r=s.executeQuery("SELECT MAX(LENGTH(field_to_query)) FROM table_to_query;");

但是在Java中执行查询后,有没有办法在获得的ResultSet的每一列中获得最长的字段:

示例:我执行了:

r=s.executeQuery("select * from emlployee,department where d_id=dept_id and dept_name="Research");

现在我想获取 r 中每一列中最长字段的长度。

谢谢

最佳答案

好了,我已经创建了一个实用程序类,它将为您提供一个代表每列最大大小的 int 数组

import java.sql.ResultSet;
import java.sql.SQLException;

public class MyDbUtility {
private MyDbUtility(){}
public static int[] maxColumns(final ResultSet resultSet) throws SQLException {
int columnNumber = resultSet.getMetaData().getColumnCount();
int[] max = new int[columnNumber];
int currentRow = resultSet.getRow();
int fetchDirection = resultSet.getFetchDirection();
if (fetchDirection == ResultSet.FETCH_FORWARD) {
resultSet.beforeFirst();
}else {
resultSet.afterLast();
}

while (resultSet.next()) {
for (int i = 1; i <= columnNumber; i++) {
if (resultSet.getString(i).length() > max[i-1]) {
max[i-1] = resultSet.getString(i).length();
}
}
}
resultSet.absolute(currentRow);
return max;
}
}

用法

    int[] max=MyDbUtility.maxColumns(reslut);

关于java - 如何从结果集中查找每列中最长字段的长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35539004/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com