java - 无法在Java中的prepareStatement中设置日期

标签 java mysql

如果我改变

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/

相关文章:

php - call_user_func_array 太慢了吗?

java - Picocli 解析搜索字符串

java - 为 Android 应用程序编写汇编语言代码

Mysql 查询在 SQLyog 中工作,但不被浏览器读取

mysql - 基于 SQL (BigQuery) 中的多个列返回许多小数据样本

php - 使用 PDO 查询重置我的服务器

带有 return 语句的存储函数中的 MYSQL 异常处理

java - servlet 以编程方式设置身份验证

java - 如何使用DataOutputStream和DataInputStream进行序列化/反序列化?

java - 根据条件从方法返回 boolean 值或整数