【问题标题】:How do I query for a List<String> using DBUtils?如何使用 DBUtils 查询 List<String>?
【发布时间】:2013-02-16 06:19:45
【问题描述】:

查看DBUtils API docs,我看不出是否可以像使用BeanListHandler 查询List&lt;MyBean&gt; 一样查询List&lt;String&gt;

我可以创建一个包装字符串的 Bean 并使用 BeanListHandler 或者可能返回一个 List&lt;Object[]&gt; 并以这种方式取出我的字符串。

但是有没有更直接的方法让 DBUtils 可以将 List&lt;String&gt; 传回给从 varchar 表列生成一堆字符串值的查询?

【问题讨论】:

    标签: java apache-commons-dbutils


    【解决方案1】:

    尝试ColumnListHandler,并告诉它要使用查询中的哪一列。您可以传入要提取的列索引或列名。比如:

    List<String> strings = runner.query("SELECT my_col FROM my_table",
                                        new ColumnListHandler<String>(1));
                                        // gets first column
    

    它在内部使用ResultSet#getObject,如果所选列是字符串类型,则返回String,因此请确保您没有选择数字或日期类型或其他内容(如果是,请转换或以其他方式转换它到 select 查询中的 char 类型)。

    【讨论】:

    • 很好,我会试一试。谢谢!
    • 好建议,您可以扩展为“select col1||','||col2... cols from my_table”一堆字符串值。
    猜你喜欢
    • 2018-09-06
    • 1970-01-01
    • 2012-11-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-30
    相关资源
    最近更新 更多