我想将结果集转换为字符串。我已经尝试了一切,但它总是没有找到数据。请提供一些解决方案

时间:2010-02-23 10:15:52

标签: java jdbc

我想将ResultSet转换为字符串。我已经尝试了一切,但它总是没有找到数据。请提供一些解决方案

3 个答案:

答案 0 :(得分:2)

试试这个:

StringBuilder builder = new StringBuilder();
int columnCount = resultSet.getMetaData().getColumnCount();
while (resultSet.next()) {
    for (int i = 0; i < columnCount;) {
        builder.append(resultSet.getString(i + 1));
        if (++i < columnCount) builder.append(",");
    }
    builder.append("\r\n");
}
String resultSetAsString = builder.toString();

您可能需要调整字符串格式以满足您的需求。或者,您也可以将ResultSet映射到其类具有Object#toString()覆盖的Javabeans集合。

E.g。

public class Row {
    private Long id;
    private String columnName1;
    private String columnName2;
    // Add/generate constructors, getters and setters.

    public String toString() {
        return String.format("Row[id=%d,columName1=%s,columnName2=%s", id, columnName1, columnName2);
    }
}

List<Row> rows = new ArrayList<Row>();
while (resultSet.next()) {
    Row row = new Row();
    row.setId(resultSet.getLong("id"));
    row.setColumnName1(resultSet.getString("columnName1"));
    row.setColumnName2(resultSet.getString("columnName2"));
    rows.add(row);
}

// To display it:
for (Row row : rows) {
    System.out.println(row);
}

至于你的实际的问题(你显然有一个“没有找到数据”的例外),你需要提供堆栈跟踪和导致这个问题的代码片段,以便你我会得到更合适的答案。

答案 1 :(得分:0)

尝试覆盖toString()方法并根据需要实现返回的String

答案 2 :(得分:0)

无法说没有代码,但是如果您尝试在“tx_content”字段中检索数据,请尝试获取“TX_CONTENT” - 有时大写/小写会产生影响。