我正在使用JAVAFX并连接到数据库。应将查询输出复制到我在舞台中创建的tableview。我想知道如何实现这一目标。另外,我们不能在TableView中向单元格添加非字符串数据类型?
方案是查询SQL DB并将结果发送到我已经创建的tableview。 SQL输出确实具有非字符串数据类型值。我想将ResultSet值放在一个阶段的Tableview中。
以下是我无法继续进行的计划部分。
Connection conn = null;
try {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/table1","root","r1234");
} catch (SQLException ex) {
System.out.println("Connection Failed");
ex.printStackTrace();
} catch (ClassNotFoundException ex) {
Logger.getLogger(TestFX.class.getName()).log(Level.SEVERE, null, ex);
}
if (conn!=null) {
text.setText("Connnection Established");
}
Stage secondary = new Stage();
secondary.setTitle("DB Query Output");
TableView TB = new TableView();
TableColumn c1 = new TableColumn("SEQ_ID");
TableColumn c2 = new TableColumn("START");
TB.getColumns().addAll(c1,c2);
secondary.setScene(new Scene(root,500,300));
root.getChildren().add(TB);
secondary.show();
Statement q=null;
ResultSet rs=null;
String query = "select SEQ_ID,START FROM TABLE1 ORDER BY SEQ_ID DESC LIMIT 10";
try {
q = conn.prepareStatement(query);
} catch (SQLException ex) {
Logger.getLogger(TestFX.class.getName()).log(Level.SEVERE, null, ex);
}
try {
rs = q.executeQuery(query);
} catch (SQLException ex) {
Logger.getLogger(TestFX.class.getName()).log(Level.SEVERE, null, ex);
}
try {
while(rs.next())
{
int SEQ_ID = rs.getInt("SEQ_ID");
float START =rs.getFloat("START");
System.out.print(SEQ_ID + " " + START );
System.out.println();
} } catch (SQLException ex) {
Logger.getLogger(TestFX.class.getName()).log(Level.SEVERE, null, ex);
}
}
});