Java 向数据库(mysql)添加数据时,JTable不会刷新
我有一个insert按钮,当我单击insert按钮时,数据应该被添加到数据库中。但是,只有当我关闭程序并重新启动时,数据才会显示。我启动了更新代码,但它没有更新。谁能给我一些提示,告诉我如何在JTable中更新数据库 提前感谢在catch之后添加一个finally块,用于关闭连接和preparedStatementJava 向数据库(mysql)添加数据时,JTable不会刷新,java,mysql,database,jtable,Java,Mysql,Database,Jtable,我有一个insert按钮,当我单击insert按钮时,数据应该被添加到数据库中。但是,只有当我关闭程序并重新启动时,数据才会显示。我启动了更新代码,但它没有更新。谁能给我一些提示,告诉我如何在JTable中更新数据库 提前感谢在catch之后添加一个finally块,用于关闭连接和preparedStatement insert.addActionListener(new ActionListener() { public void actionPerformed(Ac
insert.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
try{
String sql1 = "Insert into supplier (SupplierID, CompanyName,PhoneNumber) values (?,?,?)";
Connection conn = null;
conn = DriverManager.getConnection("jdbc:sqlite:C:\\Users\\Jela\\Desktop\\repo\\Master\\Working\\database.db");
PreparedStatement pst = conn.prepareStatement(sql1);
pst.setString(1, supplierID.getText());
pst.setString(2, companyname.getText());
pst.setString(3, contactnumber.getText());
pst.execute();
System.out.println("data inserted");
conn.close();
}catch(Exception e2){
System.out.println(e2);
}
try{
String sql2 = "Select * FROM supplier";
Connection conn1 = null;
conn1 = DriverManager.getConnection("jdbc:sqlite:C:\\Users\\Jela\\Desktop\\repo\\Master\\Working\\database.db");
PreparedStatement pst = conn1.prepareStatement(sql2);
ResultSet rs = pst.executeQuery();
DefaultTableModel model1 = new DefaultTableModel(data, columnNames);
table.setModel(model1);
conn1.close();
}catch(Exception e3){
System.out.println(e3);
}
}
});
关闭资源的另一种方法是使用try with resources语句
...
} finally {
if (pst!= null) {
pst.close();
}
if (conn != null) {
conn .close();
}
select语句和sql2一起工作吗?它会给你一个异常吗?顺便问一下,你从来没有关闭过连接..我不知道,因为那部分是我更新JTable的代码,它不会给我一个异常答案,如果我关闭连接,更新函数会工作吗,但是,更新功能仍然不工作。我关闭了conn和conn1连接,但没有成功
try (Connection conn = DriverManager.getConnection(myConnectionURL);
PreparedStatement pst = conn.prepareStatement(sql1);)