Java 从一个表中请求两个日期时间,但只得到一个
我试图从数据库中获取两个datetime值,但一次只能获取其中一个。我的意思是,如果我从查询中删除我确实得到的列(begintijd),那么我确实得到了另一列(eindtijd) 以下是我的数据库截图: 我的java.util.Date实现有什么问题吗?所以我很笨。 我使用了一个增量for循环,然后在每个循环结束时再次增加索引,基本上跳过了偶数列。所以我很笨。Java 从一个表中请求两个日期时间,但只得到一个,java,sql,mariadb,Java,Sql,Mariadb,我试图从数据库中获取两个datetime值,但一次只能获取其中一个。我的意思是,如果我从查询中删除我确实得到的列(begintijd),那么我确实得到了另一列(eindtijd) 以下是我的数据库截图: 我的java.util.Date实现有什么问题吗?所以我很笨。 我使用了一个增量for循环,然后在每个循环结束时再次增加索引,基本上跳过了偶数列。所以我很笨。 我使用了一个增量for循环,然后在每个循环结束时再次增加索引,基本上跳过了偶数列。似乎每次迭代都要增加I两次(参见循环结束时的I++)
我使用了一个增量for循环,然后在每个循环结束时再次增加索引,基本上跳过了偶数列。似乎每次迭代都要增加
I
两次(参见循环结束时的I++
),似乎每次迭代都要增加I
两次(请参见循环末尾的i++
)。
con = DriverManager.getConnection("jdbc:mysql://localhost:3306/db", "username", "password");
resultTable = new ArrayList<>();
Statement statement = con.createStatement();
statement.execute(query)
ResultSet result = statement.getResultSet();
ResultSetMetaData resultData = result.getMetaData();
while (result.next()) {
Map<String, Object> row = new HashMap<>();
for (int i = 1; i <= resultData.getColumnCount(); i++) {
String type = resultData.getColumnTypeName(i);
switch (type) {
case "INT":
row.put(resultData.getColumnName(i), result.getInt(i));
break;
case "VARCHAR":
case "CHAR":
case "TEXT":
row.put(resultData.getColumnName(i), result.getString(i));
break;
case "DATETIME":
row.put(resultData.getColumnName(i), new java.util.Date(result.getTimestamp(i).getTime()));
break;
default:
throw new IllegalArgumentException("Data type not supported");
}
i++;
}
resultTable.add(row);
}
String query = "SELECT begintijd, eindtijd, lesID FROM calendar WHERE lesID = 1";
ArrayList<Map<String, Object>> resultTable = Database.executeStatement(query);
System.out.println(resultTable);
[{begintijd=Tue Apr 07 08:30:00 CEST 2020, lesID=1}]