将值从java GUI插入postgresql数据库

时间:2016-04-26 13:38:10

标签: java swing postgresql

我在使用java创建的postgres表中插入数据时遇到问题。代码的创建表部分工作正常,它只在我向表中插入没有任何反应的值时。我用来填充表tt的代码是:

    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);
            }
        });
    }

1 个答案:

答案 0 :(得分:3)

您正在将自动提交设置为false。

  

禁用自动提交模式后,没有SQL语句   提交,直到您明确调用方法提交。

https://docs.oracle.com/javase/tutorial/jdbc/basics/transactions.html#disable_auto_commit

尝试在c.commit()

之后执行pst.executeUpdate();