在java中有日期错误
我目前正在做一个基于订购系统的项目 下面是“订单”的实体类: 连接到数据库的My OrdersDA:在java中有日期错误,java,date,Java,Date,我目前正在做一个基于订购系统的项目 下面是“订单”的实体类: 连接到数据库的My OrdersDA: public static int createOrders(Orders orders) { // declare local variables int orderID ; DBController db = new DBController(); String dbQuery; PreparedStatement pstmt; // ste
public static int createOrders(Orders orders) {
// declare local variables
int orderID ;
DBController db = new DBController();
String dbQuery;
PreparedStatement pstmt;
// step 1 - establish connection to database
db.getConnection();
// step 2 - declare the SQL statement
dbQuery = "INSERT INTO orders (orderId, tableNo, numPax, orderDate , totalAmount) VALUES(?, ?, ?, ? , ?)";
pstmt = (PreparedStatement) db.getPreparedStatement(dbQuery);
orderID = getNextOrderId();
// step 3 - to insert record using executeUpdate method
try {
pstmt.setInt(1,orderID );
pstmt.setInt(2, orders.getTableNo());
pstmt.setInt(3, orders.getNumPax());
pstmt.setDate(4, (Date)orders.getOrderDate());
pstmt.setDouble(5, orders.getTotalAmount());
if (pstmt.executeUpdate() == 1)
return orderID;
pstmt.close();
} catch (Exception e) {
e.printStackTrace();
}
// step 4 - close connection
db.terminate();
return -1;
}
将出现以下错误:
pstmt.setDate(4, (Date)orders.getOrderDate()); and states that java.util.Date cannot be cast to java.sql.Date
创建订单时我的主要方法:
private void actionPerformedOrder() {
//retrieve user input
String numPax = (String) cbNoPax.getSelectedItem();
String tableNo= (String)cb_tableno.getSelectedItem();
Date orderDate = new Date();
orders=newOrders(Integer.parseInt(tableNo),Integer.parseInt(numPax)
,orderDate, totalAmount);
int orderID = OrdersDA.createOrders(orders);
}
你知道我哪里出错了吗?谢谢你的帮助 信息非常清楚
pstmt.setDate(4, (Date)orders.getOrderDate()); and states that java.util.Date cannot be cast to java.sql.Date
您有一个对象java.util.Date
,但preparedStatement需要一个java.sql.Date
。所以你必须转换它
查看如何操作。两个类中导入的日期类似乎不同。在第一个类中是java.util.Date,但在OrdersDA类中是java.sql.Date
java.util.Date yourDate;
java.sql.Date sqlDate = new java.sql.Date(yourDate.getTime());
然后您就可以将其保存到SQL数据库中。OT:是否应该调用
Orders
类Order
?
java.util.Date yourDate;
java.sql.Date sqlDate = new java.sql.Date(yourDate.getTime());