在我的GUI中,有“搜索”菜单项,它应该在Faculty表中搜索ssn号并将其打印到javabook数据库中的TextArea中。但是,我只获取了包含 15 行的表的最后一行。 这是调用 searchDB 方法的搜索菜单项。
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 中打印表格的所有行?
最佳答案
这是因为您正在使用setText()
,请改用append()
。检查javadoc对于文本区域。
关于java - 将表的所有行打印到javabook数据库中的TextArea中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47297348/