2017-02-23 14 views
0

私はプログラミングにかなり慣れています。DBMS(Java)を実装するための配列/リスト

私はJavaでテーブルを構築し、2つの異なるテーブルを結合する方法を持っているし、おそらくwhere句にも(SQLに似ている)する方法を見つけたいです。私は、仕事を終えることができるライブラリがおそらく存在することを認識していますが、私はこれを自分で実装したいと思います。私は文字列とint型の列をサポートすることができるようにしたい。私は行のコレクションとしての私のデータを表すことを考えていた出発点として

。私は当初は列クラスを作成することを最初に考えていましたが、どのように(SQLに似たような)結合を働かせたいのかは頭痛のように思えます。

私だけのリスト/配列を使用することを考えると、行のコレクションは良いでしょうか?また、もし私がString [] []のようなことをしてintカラムを持っていたいなら、どうすればこのことを知ることができますか?

おかげ

+0

あなたのJavaコードでテーブル結合を行うことはおそらくありません。これはあなたのデータベースが適しているため、データベースが作成された理由です。 Javaコードでレコードを表現する必要がある場合、これを行う最も簡単な方法は 'Object []'でしょう。その間は、可能であれば質問を絞り込んでください。 –

+0

@TimBiegeleisen "これはあなたのデータベースが適しているため、データベースが作成された理由です。"これが彼が作りたいものだと思われる。 – marstran

+0

私は、列の唯一の可能性はstringとintであるので、2つのテーブルの自然な内部結合をサポートしたいと思います。私は文字列がint型を保持することはできません。逆もまた同様です。テーブルは文字列とint型の列を持つことができます。だから私の質問をよりよく入れるために、配列/リストだけを使ってこれを実装する方法はありますか? –

答えて

0

私はArrayListのを使用するか、[]オブジェクトするかどうかを決定すると、あなたの懸念の少なくともだろうと思います。しかし、テーブルごとにカラム数が変わらないと仮定すると、内部的に行をObject[]として保存し、ユーティリティメソッドを提供するわかりやすいRowオブジェクトでラップするのは理にかなっています。その後、行を挿入したり削除したりすることができるので、それらを内部的にList<Row>として格納することは理に適っています。

+0

事前参加の場合と同じように列の数が変更されていないことを意味しますか?そうなら、はい。表Z1には列AとBがあります。表Z2には列AとCがあります。表のデカルト積は、A、BまたはCと非常によく異なる表を返します –

+0

@ JohnFang私が言ったように、使用する内部データ構造を決定することは、あなたの問題の中では最少です。犯罪はありませんが、現在のスキルレベルでは難しいプロジェクトを選んだと思います。そして、ここに誰もあなたのためにステップバイステップでそれを書くつもりはありません。 –

関連する問題