【问题标题】:How to get data from a ResultSet without explicitly如何在不显式的情况下从 ResultSet 获取数据
【发布时间】:2012-06-14 19:29:51
【问题描述】:

我正在制作一个非常简单的应用程序来在网页上显示数据库表的内容,因此我想遍历一个 ResultSet 并将每个单元格的内容粘贴在 <td> 标记等之间。

问题是表可能非常大,我不想使用显式 getString()getInt()getXXX() 方法。相反,使用 ResultSetMetaData 方法 getColumnType() 作为更通用的 ResultSet getData(<columName>, <type>) 方法的参数会更好,但似乎没有一个。

这可能吗?我是不是走错了路,还是我离基地太远了?

【问题讨论】:

    标签: java jdbc resultset


    【解决方案1】:

    有一个 getObject() 方法,但您仍然必须转换结果对象,除非它们都是不需要特殊格式的字符串和整数。在这种情况下,您只需检查它是否为 null,如果有效则调用 toString()。

    http://docs.oracle.com/javase/1.4.2/docs/api/java/sql/ResultSet.html#getObject(int)

    【讨论】:

    • imbric 可以创建一个包装类,该类在构造函数中接受 getObject() 并提供标准的 getDataString() 方法来格式化每个 sql 类型。
    • 数据只是字符串和整数,这样就可以了。谢谢你。您能够以编程方式获取列类型,但实际上不能以这种方式使用它进行检索,这似乎很奇怪。
    • @imbric 好吧,您总是可以调用 getString() 并获取字符串表示形式。只是在像 Java 这样的静态类型语言中,如果您在编译时不知道它是什么类型,那么您对值无能为力。迟早,有人要么必须转换它,以便他们可以使用 NumberFormatter 或其他东西,要么只需调用 toString() 就可以了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-09-28
    • 2019-08-31
    • 1970-01-01
    • 1970-01-01
    • 2020-05-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多