0

階層化された SQL テーブルから項目を読み取りたい。例: 親子関係を持つテーブル。以下は私のテーブル構造です:

id    name    parentId

1     abc      null

2     xyz        1

3     lmn        1

4     qwe       null

5     asd        4

すべてのアイテムを一度に階層的にロードしたいのですが、どうすればよいですか? 私は HashMap を試しましたが、非常に複雑に感じます....よろしくお願いします...

4

2 に答える 2

1

1つのSQLクエリで階層全体を取得できますが、クエリはデータベースシステムによって異なります。たとえば、Oracleは階層クエリに対して「CONNECTBY」クエリをサポートしています。MySQLはこれを直接サポートしていませんが、MySQLの階層クエリで説明されている非常に優れたアプローチがいくつかあります。これらのいずれかを試してみることをお勧めします。基本的なアプローチは、CONNECTBYを模倣する関数を作成することです。

于 2012-10-25T06:00:02.790 に答える
1

まず第一に、あなたの質問から、SQL側またはJavaデータ構造側で助けが必要かどうかは明確ではありません.

つまり、データベースからデータをフェッチしてから、適切な Java データ構造にデータを入力する必要があります。

したがって、これには直接的な方法はありません。データは主にツリー構造であるため、主にツリーの Java データ構造に焦点を当てる必要があります。したがって、以下は、実行する必要がある手順です。

1) まず、ツリー構造の Java クラス構造を作成します。それについては、以下のリンクを参照してください。

Javaツリーのデータ構造?

http://www.java2s.com/Code/Java/Collections-Data-Structure/Yourowntreewithgenericuserobject.htm

http://www.codeproject.com/Articles/14799/Populating-a-TreeView-Control-from-the-Database

2)最終的にJavaオブジェクトが必要な場合、SQL側からはあまり必要ありません。SOプレーンな選択クエリを実行してデータを取得できます。

3) ここで、ステップ 1 のクラス構造を使用してデータのツリーを準備するためのヘルパー メソッドが必要です。より適切な設計を行うと、SQL データを使用してツリー クラス構造を自己構築することができます。

于 2012-10-25T06:05:28.353 に答える