java - 我想将结果集转换为字符串。我什么都试过了,但总是找不到数据。请提供一些解决方案

标签 java jdbc

我想将 ResultSet 转换为字符串。我什么都试过了,但总是找不到数据。请提供一些解决方案

最佳答案

试试这个:

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 映射到 Javabean 的集合,这些 Javabean 的类覆盖了 Object#toString()

例如

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

至于您的实际问题(您显然遇到了“未找到数据”字样的异常),您需要提供导致此问题的堆栈跟踪和代码片段,以便您会得到更合适的答案。

关于java - 我想将结果集转换为字符串。我什么都试过了,但总是找不到数据。请提供一些解决方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2317251/

相关文章:

java - 如何使用 JOOQ 刷新数据库连接

java - 如何在 JdbcTemplate 中查询 List<String>?

java - 无法在 JDBC 中执行 MySQL 存储过程,出现空指针异常

java - 在 CSS 中定位 JSF 2.0 组件

java - 在另一个 JFrame 中调用 JFrame

java - Grails:将 jconsole 连接到指定端口上的本地进程

java - 创建一个包含 Java 泛型的新数组

java - LogHandler 刷新与发布中的直接输出

java - Spring Jdbc模板+ MySQL = TransientDataAccessResourceException : Invalid Argument Value : Java. io.notSerializationException

Java ORA-01034 : ORACLE not available