2016-06-28 1 views
1

「データベースからTableViewにデータを追加する方法」に関する回答がいくつかありますが、どちらもかなり重複しているのでlink oneにしかありません。データベースからJavaFX TableViewにデータを追加するための最もスムーズな方法

なぜ私は新しい「重複質問」を作成していますか? 私はではありません。私はその答えやいくつかのブログでも使われているアプローチを理解していますが、私はそれが気に入らないのです。

データベースを使用している理由は、自分のプログラムで何らかの種類のデータを保持するためにメモリを無駄にするのをやめたいからです。私はいくつかのアンドロイドの開発を行って以来、私はデータベースの有用性を学びました。さて、本当に私の質問は何ですか?

これらのアプローチはすべてObservableListを使用しており、私はそれを避けたいと考えていました。

Androidはかなりの選択したデータを保持し、アダプタを使用して、コンテンツのすべての種類を埋めるために使用することができますCursorと呼ばれるものがあります。

私はObservableListを使用して感じると、最終的にデータベースが役に立たなくなってしまい、Listのすべてを手に入れました。

上記の答えに記載されているObservableListを使用しないでなしでテーブルを記入する方法はありますか?

+1

まあ、ObservableListsは、多くの点で特に非効率的なIMOではありません。もちろん、アプリケーションに応じて異なりますが、多くの場合、[observableArrayList](https://docs.oracle.com/javase/8/javafx/api/javafx/collections/FXCollections.html#observableArrayList--)で十分です。アプリケーション。おそらくあなたの懸念を引き起こしているデータ構造の選択ではなく、そのサイズです。あなたが本当に求めているのは、単なる[ページ区切りテーブル](http://stackoverflow.com/questions/15349185/javafx-tableview-paginator)です。 – jewelsea

答えて

1

私は、リストの使用はおそらく必要ではないと言います.....しかし、あなたがテーブルに何を載せていても....あなた自身が言ったようにおそらくリストになるでしょう。あなたのコンテンツはリストにありますが、あなたのデータベースにすべて入っているので、何がポイントですか? 答えはあなたのデータベースを照会し、必要なものに応じて限られた量のコンテンツを表示することができるということです。データベースの使用は通常、一度にすべてのラムに一度に保存したくない大量のコンテンツほとんどの場合、少なくともクエリ操作を実行することができます。したがって、実装を検討する際には、リストを必要とするかどうかよりもデータベースが本当に必要かどうかを検討する必要があります。 要するに、データベースから情報の一部を照会してリストを使用するのではなく、リストに表示できるかどうかを検討してください。

照会し、あなたのクラスのインポートで、あなたのプロジェクトにhere

1

Androidクラスを直接使用することができない限り、正確な解決策はわかりませんが、DataFxを私の「アダプタ」として、Flowlessを怠け者であり、パフォーマンスの良いListViewとして探求します。

0

この

rs2xml.jar

を含め、観察リストにライブラリを結果を追加する方法については、この例を参照してください。このクラス

import net.proteanit.sql.DbUtils; 

あなたのコードでは、テーブルコンポーネントに変数名がある場合。 tblUsers あなたはデータベースから結果を取得しました。

sql = "SELECT id, name FROM users"; 

pst = con.prepareStatement(sql); 

result = pst.executeQuery(); 

//the below code will populate the table with database values 

tblUsers.setModel(DbUtils.resultSetToTableModel(result)); 
+0

データベースからのカラムと、自分のTableViewからのカラムはどのように関連付けられていますか? A.k.a. 'id'を入れる列はどのように分かっていますか? – Maverick283

+0

データベースのテーブルのヘッダーの順番でテーブルにデータを入力します。テーブルコンポーネントでは、テーブルヘッダをそのプロパティで定義することができます。テーブルコンポーネントを選択し、右クリックしてそのプロパティに移動します。 –

関連する問題