我正在尝试将数据从另一个表(购物车)中插入表格(order_details)。当我执行它时,它在数据库中插入两次数据。我无法理解为什么会这样。有谁能够帮我?提前谢谢。
CartDAO
public boolean insertCart(String username)
{
try
{
sql = "INSERT INTO order_details (username, product_code, product_name, qty, product_price, product_pic, order_status)"
+"SELECT username, product_code, product_name, qty, product_price, product_pic, order_status FROM cart WHERE username = ? AND order_status = 1";
con = DbConnection.getConnection();
pst = con.prepareStatement(sql);
pst.setString(1, username);
pst.executeUpdate();
DbConnection.close();
return true;
}catch(ClassNotFoundException | SQLException ex)
{
Logger.getLogger(CartDAO.class.getName()).log(Level.SEVERE, null, ex);
return false;
}
}
CartWS
public boolean insertOrderDetails(String username)
{
CartDAO dao = new CartDAO();
return dao.insertCart(username);
}
答案 0 :(得分:3)
在代码中添加一些日志语句
重复插入问题可能有两个可能的原因
(1)您的方法“insertCart”从代码中调用了2次。如果你在insertCart方法中添加System.out.println()或一些日志语句......你将能够找到。
OR
(2)在插入查询之前打印SELECT查询,如下所示
System.out.println(SELECT username, product_code, product_name, qty, product_price, product_pic, order_status FROM cart WHERE username = ? AND order_status = 1)
//不要忘记更换?具有适当的价值
从SELECT语句获取的记录数必须与插入表中的记录数相同