2017-02-23 35 views
0

我對編程相當陌生,只能編程四到六個月。用於實現DBMS(Java)的數組/列表

我想找到一種方法來建立在Java中的表,並有方法來連接兩個不同的表,也許還有where子句(類似於SQL)。我意識到可能存在一些可以完成工作的庫,但我想自己實現這一點。我希望能夠支持字符串和int類型的列。

作爲一個起點,我正在考慮將我的數據表示爲行集合。我最初也在考慮創建一個列類,但是我希望如何加入它(類似於SQL),這看起來像是頭痛而不必要的。

鑑於我只想使用列表/數組,行集合是一個好主意嗎?另外,如果我做了像String [] []之類的東西並想要一個int列,我該如何解決這個問題?

感謝

+0

您應該不希望在您的Java代碼中執行表連接。這就是你的數據庫所適合的,這就是數據庫被創建的原因。如果你需要在你的Java代碼中表示一條記錄,那麼'Object []'是最簡單的方法。同時,儘可能縮小你的問題範圍。 –

+0

@TimBiegeleisen「這就是你的數據庫適合的,這就是數據庫被創建的原因。」這似乎是他想要創造的。 – marstran

+0

嗯,我想支持兩個表的自然內部連接,因爲列的唯一可能類型是string和int。我不是說字符串列可以保存整數,反之亦然,只是表可以有字符串列和int列。所以爲了更好地提出我的問題,我怎樣才能實現這隻使用數組/列表? –

回答

0

我認爲,決定是否使用ArrayList或對象[]將是至少您的問題。但是,如果我們假設每個表的列數不變,那麼將內部行存儲爲Object[]並且當然包含提供實用方法的合理Row對象是有意義的。然後,由於可以插入和刪除行,所以將它們內部存儲爲List<Row>是合理的,當然這些行都包含合理的Table對象。

+0

你的意思是在預加入中不變的列數?如果是的話,是的。儘管我想支持表Z1中的A和B列。表Z2中有A和C列。然後,表的笛卡爾乘積會返回一個表,其大小可能與A,B或C不同 –

+0

@JohnFang就像我說過的,決定使用哪些內部數據結構是你的問題中最少的。沒有冒犯,但我認爲你已經選擇了一個項目,因爲你目前的技術水平太難了。這裏沒有人會爲你一步一步寫出來。 –