我正在寫一個java函數來刪除MySQL表中的所有數據,然後在其中寫入新數據。以下是我的功能。如何從MySQL表中刪除所有數據並用新數據填充表
public void editsnack(ArrayList snames)
{
System.out.println("Snack Names "+snames);
Statement _snacksListStmt = null;
Statement _deleteTableDtataStmt = null;
try
{
_snacksListStmt = fCon.createStatement();
_deleteTableDtataStmt = fCon.createStatement();
int i=0;
for(i=0;i<snames.size();i++)
{
String _name = snames.get(i).toString();
String _deleteTableData ="TRUNCATE TABLE snacklist";
_deleteTableDtataStmt.executeUpdate(_deleteTableData);
String _snackListQuery ="insert into snacklist(snackName)values('"+_name+"')";
System.out.println("Query ");
System.out.println(_snackListQuery);
_snacksListStmt.executeUpdate(_snackListQuery);
}
}
注意,成功地刪除數據之後,這些線路
System.out.println("Query ");
System.out.println(_snackListQuery);
打印正確的值,但是值不被存儲在表中。
我該如何解決這個問題?
首先,您要刪除您插入的每個項目的所有數據。因此,將'TRUNCATE'代碼移到* for'for循環的 – NoLifeKing
之前。此SQL可以包含注入。 – NoLifeKing
@NoLifeKing將您的第一條評論發佈爲答案,所以我可以接受它。 –