我有一个名为customer的mysql数据库,我正试图从gui中的textfield插入数据。我运行了下面的代码,控制台显示“连接成功”,没有错误。我检查了一下信息是否已插入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;
}
1条答案
按热度按时间kupeojn61#
由于插入的是单行,因此不需要批插入。
你的代码什么都不做的原因是因为你正在执行一个空的批处理。你需要打电话
preparedStatement.addBatch()
我也是。或者把它去掉executeBatch()
打电话,就像你说的那样executeUpdate()
我也是。