0
私のGUIには「検索」メニューがあり、Facultyテーブルのssn番号を検索してjavabookデータベースのTextAreaに出力する必要があります。しかし、私は15行のテーブルの最後の行だけを取得します。 searchDBメソッドを呼び出すSearch menuItemを次に示します。テーブルのすべての行をjavabookデータベースのTextAreaに出力します
MenuItem search = new MenuItem("Search");
search.setOnAction((ActionEvent t) -> {
try{
searchDB(tArea);
}
catch(Exception ex){
ex.printStackTrace();
}
});
ここにはsearchDBメソッドがあります。
public void searchDB(TextArea tArea) throws SQLException, ClassNotFoundException {
if (databaseName != null) {
TextInputDialog dialog = new TextInputDialog();
dialog.setContentText("Please enter Faculty ssn number follwing by %");
Optional<String> search_id = dialog.showAndWait();
try {
Class.forName("com.mysql.jdbc.Driver");
Connection connection = DriverManager.getConnection("jdbc:mysql://localhost/" +databaseName+ "?autoReconnect=true&useSSL=false", "scott", "tiger");
Statement statement = connection.createStatement();
ResultSet resultSet = statement.executeQuery("select * from Faculty where ssn like '" + search_id.get() + "';");
while (resultSet.next())
tArea.setText(resultSet.getString(1) + "\t" + resultSet.getString(2) + "\t" + resultSet.getString(4) + "\t" + resultSet.getString(5));
}catch(Exception ex){
ex.printStackTrace();
}
}
}
なぜ私はテーブルの最後の行だけを取得できますか? TextAreaでテーブルのすべての行を印刷するには?
['appendText()'](https://docs.oracle.com/javase/9/docs/api/javafx/scene/control/TextInputControl.html#appendText-java.lang.String)を意味すると思います。 - )( 'JTextArea'のドキュメンテーションをリンクしました)。 –
@James_Dはい私はappendText()appendText()が償却されたappend()を意味する代わりに、代わりにTextAreaを指すようにリンクを更新しました。 – johnII
これは非推奨ではありません。今度は 'java.awt.TextArea'をリンクしています –