我在Java中的String数据类型的邻接矩阵:邻接矩阵从Java到SQL
String[][] A;
我想读我的邻接矩阵A为MySQL表。问题是我永远不知道需要多少行/列(我也不想创建所有列)。我认为解决这个问题的技巧是即时创建列。如何添加列“在飞行中?”
一旦我可以实时添加列,我就可以逐行读取矩阵。
- 我希望能够将数据视为矩阵。
非常感谢所有帮助!
我在Java中的String数据类型的邻接矩阵:邻接矩阵从Java到SQL
String[][] A;
我想读我的邻接矩阵A为MySQL表。问题是我永远不知道需要多少行/列(我也不想创建所有列)。我认为解决这个问题的技巧是即时创建列。如何添加列“在飞行中?”
一旦我可以实时添加列,我就可以逐行读取矩阵。
非常感谢所有帮助!
而是通过设置变量列的麻烦去的,创建一个简单的数据库表:
row integer
col integer
content varchar
这使您可以灵活地避免空条目,你有一个数据库表行的每个数组项目。
你有两个选择:
有关选项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中,在排所请求的元素的含量,列是发现这样的:
很明显,选项1更快地访问元素。选项2节省数据库空间。 PS:如果你有一个长度可变的数组数组,那么选项1将不起作用。
colNumber是String数组的固定列数。
也许你可以添加列到表中。试想一下,你的表被命名为“MYTABLE”: 在SQL Server中,你可以这样写:
ALTER TABLE MYTABLE ADD COLUMN COLX varchar(255);
其中X是你需要的列数。
这个选项,可以让你在你的表中添加列,但也许解决方案是创建一个新的表落下前一个:
DROP TABLE MYTABLE;
CREATE TABLE MYTABLE(COL1 varchar(255), COL2 varchar(255)...);
让我知道,如果它是你的问题。 谢谢。
这显然是正确的解决方案。尽可能避免动态更改表格模式。 –
+1我非常同意这一点。 –
我看到这是如何更高效,是否有一种方法来查询这种格式的数据,以便我可以物理看待我的数据为矩阵?我真的希望能够以n×n的矩阵物理地查看数据。 – CodeKingPlusPlus