gpt4 book ai didi

java - 从哈希集中的表中获取特定列的数据

转载 作者:行者123 更新时间:2023-12-02 12:10:53 24 4
gpt4 key购买 nike

我正在从数据库中检索一些表并将这些表名称存储在哈希集中。我用来检索表的代码如下

DatabaseMetaData md = conn.getMetaData();
ResultSet rs = md.getTables(null, null, "%", null);
while (rs.next()) {
hash. add(rs. getString(3) ) ;
}

现在我在哈希集中有表。

现在我想从特定列“student”的哈希集中的所有这些表中检索数据。并将所有值放入列表中。我想检索所有这些表中学生列的所有不同值。表可能包含也可能不包含此学生列。如果表包含此列,那么我想将其不同的值存储在列表中。请建议如何做。

最佳答案

请注意,您无法使用数据库元数据提取表数据。数据库元数据只会为您提供表的详细信息,如名称、列、数据类型等。您需要与数据库建立 JDBC 连接,然后需要触发选择查询以获得所需的结果。下面是执行此操作的简单 JDBC 程序:

DatabaseMetaData md = conn.getMetaData();
// get tables from database
ResultSet rs = md.getTables(null, null, "%", null);
while (rs.next()) {
hash. add(rs. getString(3) ) ;
}
// getColumns of table 'tableName'
ResultSet rs2 = md.getColumns(null, null, tableName, null);
boolean found = false;
while (rs2.next()) {
String columnName = rs2.getString("COLUMN_NAME");
if (columnName.equalsIgnoreCase("student")) {
found = true;
break;
}
}
if (found) {
String driver = "provide the driver for database here like com.mysql.....";
String url = "provide the connection url here like jdbc://...."
String userName = "provide DB username"
String password = "provide DB username"
Class.forName(driver)
Connection conn = DriverManager.getConnection(url, userName, password)
Statement st = conn.createStatement();
Resultset rs3 = null;

// Now take the tableName from your hashset and pass it into below query.
String query = "select student from " + tableName;
rs3 = st.executeQuery(query);
While(rs3.next()) {
// Store the results anywhere you want by obtaining 'rs3.getString(1)'
}
}

希望这能解决您的问题。如果代码中有拼写错误,请忽略。

关于java - 从哈希集中的表中获取特定列的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46556906/

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