【问题标题】:How to save int and string columns in a java array / list?如何在 java 数组/列表中保存 int 和 string 列?
【发布时间】:2019-03-27 22:34:11
【问题描述】:

我正在用 java 读取 SQLite DB,并有一个整数类型和字符串类型的结果集。

结果集的大小永远不会相同,所以我相信字符串数组不起作用。

我拥有的是 [Int ItemID] [String ItemName] 并且希望能够获得结果集以将它们保存到某种地图、列表或数组中,以便我可以根据要求将它们输出给用户。

我尝试了下面的字符串数组;但就像我所说的 - 它的大小永远不会与针对 SQLite DB 的搜索查询一样大。

Connection connection = DriverManager.getConnection("jdbc:sqlite:ItemDB.db");
Statement statement = connection.createStatement();
ResultSet resultSet = statement.executeQuery(query);
String queryResults[][] = null;
while (resultSet.next()) {
    queryResults[current][0] = resultSet.getString("itemId");
    queryResults[current][1] = resultSet.getString("itemName");
    current++;
}
resultSet.close();
statement.close();
connection.close();
return queryResults;

如果有更好的方法来实现我正在寻找的东西,我会全力以赴!

提前致谢!

【问题讨论】:

    标签: java sql sqlite


    【解决方案1】:

    使用地图:

    Map<Integer, String> dataMap = new HashMap<>();
    while (resultSet.next()) {
        dataMap.put(resultSet.getInt("itemId"), resultSet.getString("itemName"));
    }
    

    编辑:如果您需要对键进行排序,可以使用TreeMap

    【讨论】:

    • 太棒了!这就是我要找的。之后有没有办法按整数对其进行排序?不幸的是,它需要 1000 并放在 1 之后。
    • @DotSlashShell 使用TreeMap 而不是HashMap
    • 在您的 SQL 中排序响应(“... ORDER BY some_column”),然后使用 LinkedHashMap 与 HashMap 来维护插入顺序。
    • TreeMap 帮我做了!
    • 仅供参考,TreeMapSortedMap,因此其键按排序顺序保存。欲了解更多信息,search Stack Overflow
    猜你喜欢
    • 2015-01-12
    • 2021-02-28
    • 1970-01-01
    • 2021-11-28
    • 2012-06-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多