Java插入到mySQL工作台

Java插入到mySQL工作台,java,mysql,eclipse,Java,Mysql,Eclipse,我有一个名为Customer的mySQL数据库,我正试图从GUI中的文本字段插入数据。我运行了下面的代码,控制台上显示“连接成功”,没有错误。我检查信息是否已插入mySQL数据库的Customer表中,但没有插入任何内容。有人知道为什么吗 button.setOnAction(e -> { Connection dbConnection = null; PreparedStatement preparedStatement =

我有一个名为Customer的mySQL数据库,我正试图从GUI中的文本字段插入数据。我运行了下面的代码,控制台上显示“连接成功”,没有错误。我检查信息是否已插入mySQL数据库的Customer表中,但没有插入任何内容。有人知道为什么吗

         button.setOnAction(e -> {


         Connection dbConnection = null;
            PreparedStatement preparedStatement = null;

         try {


           Customer cust = new Customer();
          dbConnection = Connect();
            String sql="Insert into CIS3270.Customer(firstName,lastName, email,userNAME,Address,Zip,State,SecurityQ,  Password, ConfirmPassword,SSN)VALUES (?,?,?,?,?,?,?,?,?,?,?)"; 
            preparedStatement =  dbConnection.prepareStatement(sql);


            preparedStatement.setString(1,cust.getFirstName()); 
            preparedStatement.setString(2,cust.getLastName()); 
            preparedStatement.setString(3,cust.getEmail()); 
            preparedStatement.setString(4,cust.getUserNAME()); 
            preparedStatement.setString(5,cust.getAddress());
            preparedStatement.setString(6,cust.getZip()); 
            preparedStatement.setString(7,cust.getState());
            preparedStatement.setString(8,cust.getSecurityQuestion());
            preparedStatement.setString(9,cust.getPassWORD()); 
            preparedStatement.setString(10,cust.getConfirmPassword());
            preparedStatement.setString(11,cust.getSSN()); 

            preparedStatement.executeBatch(); 
            preparedStatement.executeUpdate();

            dbConnection.close(); 
            preparedStatement.close(); 



        LoginScreen loginPage = new LoginScreen();

        loginPage.start(primaryStage);

         }
         catch(Exception e1) {
            e1.printStackTrace();
         }
    });

       public static Connection Connect() {
       Connection con = null;
    try {
        Class.forName("com.mysql.jdbc.Driver");
        con = (Connection) DriverManager.getConnection("jdbc:mysql://(ip adress):3306/CIS3270", "root", "password");
    } catch (Exception e) {
        System.out.println("Can not connect");
    }
    if (con != null) {
        System.out.println("Connected Successfully");
    }
    return con;
}

由于插入的是单行,因此不需要批量插入


代码不执行任何操作的原因是因为您正在执行一个空批处理。您还需要调用
preparedStatement.addBatch()
。或者删除
executeBatch()
调用,就像您似乎也在调用
executeUpdate()
一样。

在关闭()之前是否尝试过提交(dbConnection.commit())?添加
Connect()的代码。
是的,我尝试过两种方法都删除executeBatch()并且添加了它,得到了同样的结果——成功的连接,但实际上没有插入实际执行的代码?首先检查日志记录或调试。虽然默认情况下应该启用自动提交,但您是否尝试了
dbConnection.commit()
。我只是添加了dbConnection.commit()并运行了它。当我单击GUI中的按钮时,我的控制台中出现了一个错误:“当autocommit=true时无法调用commit”。这基本上是说,当autocommit已经为true时,就不需要调用commit了吗?我终于让insert开始工作了(部分)。之所以这样说,部分原因是每次我在eclipse中插入一个新行时,都会在mySQL Workbench上创建一个新行,但所有的值都是空的。在这一点上有什么建议吗?