gpt4 book ai didi

java - 在Java sql中添加多个Prepared Statement

转载 作者:行者123 更新时间:2023-12-01 04:58:41 27 4
gpt4 key购买 nike

我想同时执行多个 SQL 准备语句。到目前为止,我一直在使用准备好的语句方法,看起来或多或少像这样:

    public PreparedStatement createWordEntry(Connection c, String word, String word2, int num) throws SQLException{
PreparedStatement entry = c.prepareStatement("INSERT INTO table VALUES(?,?,?)");
entry.setString(1, word);
entry.setString(2, word2);
entry.setInt(3,num);
return entry;
}

最初,我尝试将它们添加到 vector/数组中并一次执行一个,但由于结果集和索引的复杂性,我不断收到“jdbc4.MySQLNonTransientConnectionException:语句关闭后不允许进行任何操作”

然后我考虑将所有语句添加到批处理中并立即执行。当然,addBatch() 需要一个字符串作为参数,而不是一个PreparedStatement。当我在这个网站上搜索时,我找到了这个答案:How to generate String "elegantly" in Java?这建议构建和格式化字符串以添加到批处理中,这会使代码容易受到 SQL 注入(inject)攻击。

那么,有没有替代这两种方法来同时执行多个查询呢?如果没有,以上哪一个更可取,为什么?

最佳答案

有多个 addBatch 方法。

您应该按照与您相同的方式设置参数,然后使用 void addBatch()PreparedStatement 声明。

关于java - 在Java sql中添加多个Prepared Statement,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13673595/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com