JavaFX MySQL データベース接続
JavaFX アプリケーションを MySQL データベースに接続するには、接続とデータの取得を処理する特定のクラスが必要です。簡単な例を次に示します。
java.sql.DriverManagerをインポートします。
インポート java.sql.SQLException;
java.sql.Statementをインポートします。
インポートjava.sql.ResultSet;
java.util.Listをインポートします。
java.util.ArrayListをインポートします。
パブリック クラス PersonDataAccessor {
プライベート接続接続;
// コンストラクター
public PersonDataAccessor(String driverClassName, String dbURL, String user, String password) throws SQLException, ClassNotFoundException {
Class.forName(ドライバークラス名);
接続 = DriverManager.getConnection(dbURL, ユーザー, パスワード);
}
// 接続を閉じる
public void shutdown() は SQLException をスローします {
if (接続 != null) {
connection.close();
}
}
// 人物リストを取得する
public List
このクラスは、接続の確立、クエリの実行、およびデータの取得を処理します。 getPersonList() メソッドは、データベース内の「person」テーブルにクエリを実行し、取得したデータを person オブジェクトのリストに変換します。
人物モデル (データ表現):import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import java.sql.Statement; import java.sql.ResultSet; import java.util.List; import java.util.ArrayList; public class PersonDataAccessor { private Connection connection; // Constructor public PersonDataAccessor(String driverClassName, String dbURL, String user, String password) throws SQLException, ClassNotFoundException { Class.forName(driverClassName); connection = DriverManager.getConnection(dbURL, user, password); } // Close connection public void shutdown() throws SQLException { if (connection != null) { connection.close(); } } // Get person list public ListgetPersonList() throws SQLException { try ( Statement stmnt = connection.createStatement(); ResultSet rs = stmnt.executeQuery("select * from person"); ) { List personList = new ArrayList(); while (rs.next()) { String firstName = rs.getString("first_name"); String lastName = rs.getString("last_name"); String email = rs.getString("email_address"); Person person = new Person(firstName, lastName, email); personList.add(person); } return personList; } } }
インポート javafx.beans.property.StringProperty; インポートjavafx.beans.property.SimpleStringProperty; パブリック クラス 人 { private StringProperty firstName = new SimpleStringProperty(this, "firstName"); public StringProperty firstNameProperty() { 名を返します。 } public String getFirstName() { firstNameProperty().get() を返します。 } public void setFirstName(String firstName) { firstNameProperty().set(firstName); } private StringProperty lastName = new SimpleStringProperty(this, "lastName"); public StringProperty lastNameProperty() { 姓を返します。 } public String getLastName() { lastNameProperty().get() を返します。 } public void setLastName(String lastName) { lastNameProperty().set(lastName); } private StringProperty email = new SimpleStringProperty(this, "email"); public StringProperty emailProperty() { メールを返信する。 } public String getEmail() { return emailProperty().get(); } public void setEmail(String email) { emailProperty().set(email); } パブリック パーソン() {} public Person(String firstName, String lastName, String email) { setFirstName(firstName); setLastName(姓); setEmail(電子メール); } }
このクラスは、firstName、lastName、および email のプロパティを持つ Person オブジェクトを定義します。
UI クラス (テーブルにデータを表示します):import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import java.sql.Statement; import java.sql.ResultSet; import java.util.List; import java.util.ArrayList; public class PersonDataAccessor { private Connection connection; // Constructor public PersonDataAccessor(String driverClassName, String dbURL, String user, String password) throws SQLException, ClassNotFoundException { Class.forName(driverClassName); connection = DriverManager.getConnection(dbURL, user, password); } // Close connection public void shutdown() throws SQLException { if (connection != null) { connection.close(); } } // Get person list public ListgetPersonList() throws SQLException { try ( Statement stmnt = connection.createStatement(); ResultSet rs = stmnt.executeQuery("select * from person"); ) { List personList = new ArrayList(); while (rs.next()) { String firstName = rs.getString("first_name"); String lastName = rs.getString("last_name"); String email = rs.getString("email_address"); Person person = new Person(firstName, lastName, email); personList.add(person); } return personList; } } }
インポート javafx.application.Application; インポートjavafx.scene.control.TableView; インポートjavafx.scene.control.TableColumn; インポートjavafx.scene.control.cell.PropertyValueFactory; インポートjavafx.scene.layout.BorderPane; インポートjavafx.scene.Scene; インポートjavafx.stage.Stage; public class PersonTableApp extends Application { プライベート PersonDataAccessor dataAccessor; @オーバーライド public void start(Stage PrimaryStage) は例外をスローします { dataAccessor = 新しい PersonDataAccessor(...); // DB 接続の詳細を提供します TableView personTable = new TableView(); TableColumn firstNameCol = new TableColumn("名"); firstNameCol.setCellValueFactory(new PropertyValueFactory("firstName")); TableColumn lastNameCol = new TableColumn("姓"); lastNameCol.setCellValueFactory(new PropertyValueFactory("lastName")); TableColumn emailCol = new TableColumn("電子メール"); emailCol.setCellValueFactory(new PropertyValueFactory("email")); personTable.getColumns().addAll(firstNameCol, lastNameCol, emailCol); personTable.getItems().addAll(dataAccessor.getPersonList()); BorderPane ルート = new BorderPane(); root.setCenter(personTable); シーン scene = new Scene(root, 600, 400); PrimaryStage.setScene(シーン); PrimaryStage.show(); } @オーバーライド public void stop() が例外をスローする { if (dataAccessor != null) { dataAccessor.shutdown(); } } public static void main(String[] args) { launch(args); } }
このクラスは UI を初期化し、TableView に Person オブジェクトを表示します。次の手順に従うことで、MySQL データベースに正常に接続し、データを取得し、ユーザーフレンドリーな表に表示します。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3