我知道我可以通过执行以下命令从特定表的一列中找到最长的字段:
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/