java - 如何从MySQL表中删除所有数据并用新数据填充表

标签 java mysql

我正在编写一个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/

相关文章:

python - 使用 SSHTunnelForwarder 通过 SSH 连接到 MySQL 数据库

java - 客户端不向服务器发送数据

java - JFrame 未全屏显示所有图像

java - 如何停止 java.awt.graphics 中的闪烁?

php - 在 WAMP 中提交大文本后连接重置

php - 将第二个重复项发布到表中

php - 如何抓取json数据并存入数据库

mysql - 添加一对值作为 SQL 查询中的参数

java - 将用户输入数据添加到 ArrayList 并使用自定义 Tablemodel 将其显示到 Jtable 中

java - 声明匿名内部类