gpt4 book ai didi

java - 从 Java 到 SQL 的邻接矩阵

转载 作者:行者123 更新时间:2023-12-02 00:05:01 25 4
gpt4 key购买 nike

我有一个 Java 中的字符串数据类型邻接矩阵:

String[][] A;

我想将邻接矩阵 A 读入 MySQL 表中。问题是我永远不知道我需要多少行/列(我也不想创建所有列)。我认为解决这个问题的技巧是动态创建列。如何“即时”添加列?

一旦我可以动态添加列,我就可以逐行读取矩阵。

  1. 我希望能够以矩阵形式查看数据。

非常感谢所有帮助!

最佳答案

创建一个简单的数据库表 A,而不是经历设置变量列的麻烦:

row     integer
col integer
content varchar

这使您能够灵活地轻松避免空条目,并且每个数组项都有一个数据库表行。

您有两个选择:

  1. 为数组的每个元素(包括空值)生成一个数据库行,或者
  2. 为每个不为 null 的元素生成一个数据库行。

对于选项 1,此代码将提供任何元素:

private String getElement(int row, int col) {
String result = null;
try {
if(rs.absolute(row*colNumber+col+1))
result=rs.getString("content");
} catch (SQLException ex) {
System.out.println(ex.getMessage());
}
return result;
}

对于选项 2,在 row,col 处请求的元素的内容如下所示:

private String getElement(int row, int col) {
String result = null;
String query = "SELECT * from A where row=? and col=?";
try {
PreparedStatement preps = con.prepareStatement(query);
preps.setInt(1, row);
preps.setInt(2, col);
preps.execute();
rs = preps.getResultSet();
if (rs.next()) {
result = rs.getString("content");
}
} catch (SQLException ex) {
System.out.println(ex.getMessage());
}

return result;
}

很明显,选项 1 访问元素的速度更快。选项 2 节省数据库空间。

PS:如果您有一个由不同长度的数组组成的数组,则选项 1 将不起作用。
colNumber 是字符串数组的固定列数。

关于java - 从 Java 到 SQL 的邻接矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14062127/

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