将java GUI中的值插入到postgresql数据库中
问题描述:
我在将数据插入到使用java创建的postgres表中时遇到问题。代码的创建表部分工作正常,只有当我将值插入到表中时才会发生任何事情。我用来填充表tt的代码是:将java GUI中的值插入到postgresql数据库中
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
String txt1 = jTextField1.getText();
int number = Integer.parseInt(txt1);
String name= jTextField2.getText();
String txt3 = jTextField3.getText();
int mean = Integer.parseInt(txt3);
Connection c = null;
Statement stmt = null;
try {
Class.forName("org.postgresql.Driver");
c = DriverManager.getConnection("jdbc:postgresql://localhost:5432/tst", "postgres", "21262050");
c.setAutoCommit(false);
System.out.println("Opened database successfully");
String sql = "INSERT INTO tt(noun, max, nbr) VALUES(?, ?, ?)";
PreparedStatement pst = c.prepareStatement(sql);
pst.setString(1, name);
pst.setInt(2,mean);
pst.setInt(3, number);
pst.executeUpdate();
} catch (SQLException ex) {
Logger.getLogger(insrt.class.getName()).log(Level.SEVERE, null, ex);
}
catch(Exception e){
e.printStackTrace();
}
}
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new insrt().setVisible(true);
}
});
}
答
您正在建立autocommit为false。
自动提交模式被禁用后,没有SQL语句是 提交,直到您显式调用方法提交。
https://docs.oracle.com/javase/tutorial/jdbc/basics/transactions.html#disable_auto_commit
尝试后pst.executeUpdate();
执行
c.commit()
我会问,为什么有必要关闭自动提交了这个例子吗? – saml它的工作原理,我太棒了! –
@TheShady没问题。如果您愿意,请将答案标记为已接受。 – RubioRic