gpt4 book ai didi

java - 从 Java 中的列表中提取特定值

转载 作者:行者123 更新时间:2023-11-29 22:48:20 25 4
gpt4 key购买 nike

我正在从数据库中提取数据并将其存储在列表中,现在当我使用 list.get(index) 从列表中提取条目时,我得到的输出为 {hours_worked=1.5}。

我想从数据库中获取的是 1.5,而不是工作时间。

这是我正在使用的检索列表的方法:

    public List totalHoursByActivity(int custId, int activityId) throws ClassNotFoundException, SQLException {
this.openConnection();

List totalHours = new ArrayList();

String sqlStmt = "SELECT hours_worked\n"
+ "from work_entry\n"
+ "JOIN activity\n"
+ "ON work_entry.activity_id = activity.activity_id\n"
+ "JOIN customer\n"
+ "ON work_entry.customer_id = customer.customer_id\n"
+ "WHERE customer.customer_id = " + custId + " and activity.activity_id = " + activityId;

totalHours = db.findRecords(sqlStmt);

return totalHours;
}

有没有办法从列表中只取出 double ?或者提取数据并获取该值的最佳方法是什么?

编辑:这就是 findRecords 的含义:

    public List findRecords(String sqlStmt) throws SQLException {
final List allRecords = new ArrayList();
Map record = null;
Statement stmt = null;
ResultSet rs = null;
ResultSetMetaData metaData = null;

stmt = conn.createStatement();
rs = stmt.executeQuery(sqlStmt);
metaData = rs.getMetaData();
int columnCount = metaData.getColumnCount();

while (rs.next()) {
record = new HashMap();
for (int i = 1; i <= columnCount; i++) {
record.put(metaData.getColumnName(i), rs.getObject(i));
}
allRecords.add(record);
}

return allRecords;
}

最佳答案

您的 findRecords 返回映射列表,每个映射都将列名称作为键和相应的值。

在您的情况下,键是 sql 语句建议的“work_entry”,值为 1.5,则 {hours_worked=1.5} 是 toString 方法在 map 上的默认输出。

如果你想要时间,你需要调用totalHours.get(i).get("hours_worked")。

如果您使用泛型,您将看到对象类型。

关于java - 从 Java 中的列表中提取特定值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29000702/

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