我正在编写一个java函数来删除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
循环之前
看看是否可以在将小吃名称添加到 SQL 之前对其进行清理,否则它们可能会导致 SQL 注入(inject)
关于java - 如何从MySQL表中删除所有数据并用新数据填充表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18013679/