public static int[][] adjacency() {
Map<String, Integer> stationIds = buildStationIdMap(); // 调用建立站点名称和对应的ID的哈希表的函数
Connection connection = JDBCUtils.getConn();
int[][] graph = null; // 邻接矩阵
try {
String sql = "SELECT Starting_Station, Terminus_Station FROM station ";
// 从数据库中检索起始站和终点站
Statement statement = connection.createStatement();
ResultSet resultSet = statement.executeQuery(sql);
int currentId = stationIds.size(); // 使用已有的ID数量作为初始ID
// 创建邻接矩阵
graph = new int[currentId][currentId];
// 填充邻接矩阵
while (resultSet.next()) {
String startingStation = resultSet.getString("Starting_Station");
String terminusStation = resultSet.getString("Terminus_Station");
int startingStationId = stationIds.get(startingStation);
int terminusStationId = stationIds.get(terminusStation);
graph[startingStationId][terminusStationId] = 1;
graph[terminusStationId][startingStationId] = 1;
}
} catch (SQLException e) {
e.printStackTrace();
// 在这里处理任何可能的异常...
} finally {
// 关闭资源
try {
if (connection != null) {
connection.close();
}
// 关闭 statement 和 resultSet
} catch (SQLException e) {
e.printStackTrace();
}
}
// 返回邻接矩阵
return graph;
}