Buongiorno a tutti,
ho un problema che ormai mi perseguita da un paio di giorni ma che non riesco a risolvere.
Premessa: sto sviluppando un online shop.
La difficoltà è la seguente: fare dei insert su più tabelle, ovviamente legate tra loro nel database. Non ci sarebbero problemi se dovessi riempire ogni campo della tabella, ma nel mio caso in diversi stati riempi la tabella.
Qualcuno ha un qualche consiglio da darmi?
Spero di essermi spiegata.
Di seguito metto i due insert presi in causa.
Grazie in anticipo.
Jasmine
Statement stmtBox = null;
ResultSet rsBox = null;
stmtBox = conn.createStatement();
int productId;
productId = rsProd.getInt("id_Prod");
//out.println(productId);
String queryBox = "SELECT id_Prod, name, description, color, price FROM T_Product"
+ " WHERE id_Prod = " + productId;
rsBox = stmtBox.executeQuery(queryBox);
while(rsBox.next())
{
int prod = rsBox.getInt("id_Prod");
//out.println(prod);
String namePr = rsBox.getString("name");
//out.println(namePr);
String descr = rsBox.getString("description");
//out.println(descr);
String col = rsBox.getString("color");
//out.println(col);
Double pricePr = rsBox.getDouble("price");
//out.println(pricePr);
%>
<tr>
<td><% out.println(prod); %> <div align="left"></div></td>
<td><% out.println(namePr); %><div align="left"></div></td>
<td><% out.println(descr); %><div align="left"></div></td>
<td><% out.println(col); %><div align="left"></div></td>
<td><% out.println(quantity); %><div align="left"></div></td>
<td><% out.println(pricePr); %> SFr</td>
<td><% out.println(pricePr * quantity);%> SFr</td>
</tr>
<%
// insert order in db
String queryInsert = "INSERT INTO T_Order(id_Product,quantity,id_Client,orderDate) "
+ "VALUES (?,?,?,?)";
try
{
Date date = new Date();
String data = "data";
PreparedStatement stmtInsert;
stmtInsert = conn.prepareStatement(queryInsert);
stmtInsert.setInt(1,prod);
stmtInsert.setInt(2,quantity);
stmtInsert.setInt(3,userId);
stmtInsert.setString(4,data);//getDate());//new java.util.Date()); // new Date();
stmtInsert.executeUpdate();
stmtInsert.close();
out.println("Order data inserted successfully.");
}
catch(SQLException ex)
{
out.println("Error during insertion in T_Order table");
}
// ho bisogno del numero di ordine
// prima di inserire in orderItem
String queryOrd = "INSERT INTO T_OrderItem(id_Prod,id_Ord) VALUES(?,?)";
PreparedStatement stmtOrd = conn.prepareStatement(queryOrd);
try
{
stmtOrd.setInt(1,productId);
stmtOrd.setInt(2,4);//numero di ordine
stmtOrd.executeUpdate();
stmtOrd.close();
out.println("OrderItem data inserted successfully.");
}
catch(SQLException ex)
{
out.println("Error during insertion in T_OrderItem table.");
}
}
//}
}

Rispondi quotando