如果我改变
ps.setString(3, ((JTextField)txtDateRecv.getDateEditor().getUiComponent()).getText());
至
ps.setDate(3, ((JTextField)txtDateRecv.getDateEditor().getUiComponent()).getText());
然后我收到一条错误消息,显示在 Netbeans IDE 7.2.1
mySQL 数据库字段的列设置为“DATE”。
有人可以帮我了解问题出在哪里吗?
感谢您的帮助。部分代码如下;
private void btnSaveActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
try{
String sql="insert into inventory(DNO,TITLE,RDATE,COPIES) values(?,?,?,?)";
ps=con.prepareStatement(sql);
ps.setString(1, txtDvdNo.getText());
ps.setString(2, txtMovTitle.getText());
ps.setString(3, ((JTextField)txtDateRecv.getDateEditor().getUiComponent()).getText());
ps.setString(4, txtCopies.getText());
ps.execute();
JOptionPane.showMessageDialog(txtCopies, "New Record added");
}
catch(SQLException e){
JOptionPane.showMessageDialog(Inventory.this, e.getMessage());
}
showInventoryTable();
}
最佳答案
解析 JTextField 中日期的文本表示
java.util.Date date = new SimpleDateFormat(your_date_format).parse(((JTextField)txtDateRecv.getDateEditor().getUiComponent()).getText());
然后创建一个java.sql.Date并将其设置为PreparedStatement
ps.setDate(3, new java.sql.Date(date.getTime()));
关于java - 无法在Java中的prepareStatement中设置日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18809968/