我在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