无法使用JXDatePicker将java.util.Date转换为java.sql.Date

时间:2014-03-12 00:58:13

标签: java sql

我在这里使用JXDatepicker。我不知道如何处理错误请帮助我。我尝试了很多但失败了。 enter image description here

我试图打印导致此错误的原因并打印此消息。我希望格式为yyyy / MM / dd,因为我希望它插入到数据库中。

AddProductGUI.java

txtExpiration = new JXDatePicker();                     txtExpiration.setName("Expiration");
txtExpiration.setBorder(null);
txtExpiration.setFormats(new SimpleDateFormat("yyyy.MM.dd"));

AddProduct.java

public java.util.Date returnDate(JXDatePicker txtExpiration, Boolean isExpiring) {
        if (isExpiring) {
            return txtExpiration.getDate();
        } else {
            return null;
        }
    }

ActionToDatabase.java

if (!DatabaseValidator
                            .isExistingData(
                                    "select ProductID from tblIndividualProduct where ProductID =?",
                                    product.getProductID())) {

                        sql = "insert into tblIndividualProduct (ProductId,Code,Expiration,Note,UpdatedPrice,PriceChanged) Values(?,?,?,?,?,?)";

                        connection
                                .setPreparedStatement((PreparedStatement) connection
                                        .getConnection().prepareStatement(sql));
                        connection.getPreparedStatement().setString(1,
                                product.getProductID());
                        connection.getPreparedStatement().setString(2,
                                product.getCode());

                        //connection.getPreparedStatement().setDate(3, new java.sql.Date(product.getExpiration().getTime()));
                        **connection.getPreparedStatement().setDate(3, (java.sql.Date)product.getExpiration());**

                        connection.getPreparedStatement().setString(4,
                                product.getNote());
                        connection.getPreparedStatement().setDouble(5,
                                product.getPrice());
                        connection.getPreparedStatement().setBoolean(6,
                                product.getPriceChanged());
                        connection.getPreparedStatement().executeUpdate();
                        System.out
                                .println("Successfully added individual product ("
                                        + product.getProductID()
                                        + ") to the database");

enter image description here

enter image description here

1 个答案:

答案 0 :(得分:1)

使用java.sql.Date作为基值创建java.util.Date的新实例,例如

connection.getPreparedStatement().setDate(3, 
    (product.getExpiration() == null ? 
        null : 
        new java.sql.Date(product.getExpiration().getTime())));

java.sql.Date从[{1}}延伸JXDatePicker可以传递java.sql.Datejava.util.Date,但它不会相反(你不能)将java.util.Date投放到java.sql.Date,但事先不知道该对象是java.sql.Date伪装成java.util.Date