ResultSet到ArrayList <string []> </string []>

时间:2014-05-06 14:34:39

标签: java jdbc serversocket

我想为每一行创建一个数组。

while (result.next()) {
                String[] result1 = {
                        "Dog ID: " + result.getLong("dogs.id"),
                        ", Dog name: " + result.getString("dogs.first_name"),
                        ", Owner name: "
                                + result.getString("owners.first_name"),
                        ", Owner phone: " + result.getString("owners.phone") };
                resultList.add(result1);

我的代码在一个数组中写入每一行。 我可以获得列数并设置限制吗?

while (resultset.next()) {              
    int i = 1;
    while(i <= numberOfColumns) {

这是因为我无法将整个表从服务器发送到客户端。

3 个答案:

答案 0 :(得分:1)

您可以按列号result.getLong(columnIndex)进行查询,但在您使用循环的情况下它没有意义,因为您有不同类型的列(除非使代码复杂化)。

如果您想优化从服务器到客户端的流量,那么只需查询您需要的列即可。

答案 1 :(得分:0)

如果要限制返回的行,最好将限制条件放入SQL查询中,并仅返回要包含的行。

答案 2 :(得分:0)

为了获得ResultSet中的列数,您可以使用以下代码:

Statement stat = conn.createStatement();
ResultSet rs = stat.executeQuery(myQuery);
ResultSetMetaData metaData = rs.getMetaData();
int numOfColumns = metaData .getColumnCount();