gpt4 book ai didi

java - 使用 resultSet 值的 HashMap 到 ArrayList

转载 作者:行者123 更新时间:2023-12-01 16:47:08 37 4
gpt4 key购买 nike

我想查询sql语句并创建一个hashmap来存储2个值。一个是 id,另一个是名称。然后我想将它添加到 ArrayList 中。我的代码有问题,与特定类型不匹配。我不明白这有什么问题。你能解释一下我在这里做错了什么吗?据我所知,您无法添加 <String, String> 类型的 HashMap 到 ArrayList 但我怎样才能以其他方式实现它?

ArrayList<String> KEYWORDS = new ArrayList<String>();

String sql = "SELECT da_tag_name, da_tag_id FROM da_tags WHERE da_tag_type_id = 8";
PreparedStatement stmt = conn.prepareStatement(sql);
ResultSet resultSet = stmt.executeQuery();

while (resultSet.next()) {
HashMap<String, String> row = new HashMap<String, String>();
row.put(resultSet.getString(1).toString(), resultSet.getString(2).toString());
KEYWORDS.add(row);
}

最佳答案

这段代码有一些问题。

  1. 列表的通用类型与您尝试添加到其中的内容不匹配
  2. 您应该养成针对接口(interface)而不是实现进行编程的习惯
  3. 变量应该采用驼峰命名法(常量全部大写)

类似这样的:

// Note: as of Java 7 you can simplify generics using the diamond operator   
List<Map<String, String>> keywords= new ArrayList<>();

String sql = "SELECT da_tag_name, da_tag_id FROM da_tags WHERE da_tag_type_id = 8";
PreparedStatement stmt = conn.prepareStatement(sql);
ResultSet resultSet = stmt.executeQuery();

while (resultSet.next()) {
Map<String, String> row = new HashMap<>();
row.put(resultSet.getString(1).toString(), resultSet.getString(2).toString());
keywords.add(row);
}

最后,我会考虑设计并质疑仅具有一个条目的 HashMap 的使用。

关于java - 使用 resultSet 值的 HashMap 到 ArrayList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48503696/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com