我在这里使用JXDatepicker。我不知道如何处理错误请帮助我。我尝试了很多但失败了。
我试图打印导致此错误的原因并打印此消息。我希望格式为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");
答案 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.Date
到java.util.Date
,但它不会相反(你不能)将java.util.Date
投放到java.sql.Date
,但事先不知道该对象是java.sql.Date
伪装成java.util.Date