2

私は昨日、SQLデータベースをSmartGWTと統合して怠惰なリストを作成しようとしていましたが、それを実装する方法がわかりませんでした。(JavaDoc、およびレイジーリストの例

私がやりたいのは、世界中のたくさんの「サイト」のリストを作成することです。問題は、おそらくそれらが約100万個あることです。そのため、一度にロードする数をできるだけ少なくしようとしています。DB内の各サイトにはアドレスがあるため、(国->州->都市->サイト)のようなツリー構造でそれらを並べ替えようとしています。レベルを下げるたびに、次のレベルすべてを要求するDBへのクエリがあります(選択された州にサイトがあるすべての都市かどうか)。

どんな助けでも大歓迎です。

また:リンクされた例では、フォルダーとリーフは要素のタイプですが、フォルダー、フォルダーを保持してから、別のタイプのオブジェクトをリーフする方法はありますか?

4

2 に答える 2

3

しばらくしてようやく手に入れました。最終的に、次のレベルのすべてのTreeNodeの名前を表す文字列の配列を提供する独自のRPCを作成しました。

したがって、エントリポイントは次のようになります。

private NodeServiceAsync nodesRpc; //The RPC that grabs more nodes
private Tree data; //The data structure to hold all of the nodes
private ColumnTree list; //The GUI element that is shown on in the browser
public void onModuleLoad() {
    nodesRpc = (NodeServiceAsync) GWT.create(NodeService.class);
    data = new Tree();
    list = new ColumnTree;

    list.setAutoFetchData(true);
    list.setLoadDataOnDemand(true);

    list.addNodeSelectedHandler(new NodeSelectedHandler () {
        public void onNodeSelected(NodeSelectedEvent event) {
            if(/*Node is folder and hasn't been opened before*/) {
                //Get More Nodes        
                AsyncCallback<String[]> callback = new NodeGetter<String[]>();
                nodesRpc.getData(event.getNode(), callback);
            }

            else if(/*Node is not a folder (at the end) */) {
                //Do something else
            }   
        }
    });
    list.setData(data); //Make the GUI Element Represent The Data Structure
    RootPanel.get().add(list); //Add to screen
}

サーバー側のサーバーレットは、クエリを作成して実行し、ResultSetを文字列の配列に変換して返します。クライアント側に戻って、コールバックが行う必要があるのは、その配列をTreeNodeの配列に変換し、クリックされた元のノードにアタッチすることだけです。最後に、このすべての後、GUI要素が新しいノードで再描画されます。

クエリされてから表示されるノードが100ほどある場合でも、ノードのロード間のダウンタイムが非常に短い(1秒未満)ことに驚きました。

于 2009-07-15T16:15:05.573 に答える
3

このようなSQL接続をすぐに使用できる製品のProバージョンもあることに注意してください(Javaサーバープラットフォーム用)。ここでのショーケース:

http://www.smartclient.com/smartgwtee/showcase/

Pro製品のSQLコネクタには、ロードオンデマンド/データページング、検索、4つのCRUD操作すべて、およびJDBC設定を入力するだけで既存のデータベーステーブルに対して機能するSQLデータソースを生成できるデータソースウィザードが含まれています。

Pro製品はSQLを必要としないことに注意してください。これは、接続できるものの1つにすぎません。

于 2009-11-24T12:15:35.087 に答える