gpt4 book ai didi

mysql - jdbc批处理不同语句

转载 作者:行者123 更新时间:2023-11-29 00:25:27 26 4
gpt4 key购买 nike

现在我一直在搜索这个,我得到了相同的答案。我想要的是在 java 中使用 jdbc 在一个变量下批处理不同的语句。到目前为止,我得到的是具有相同模式的批处理语句,例如 INSERT INTO table VALUES('?','?')。这可以使用准备好的语句来完成。但是我尝试使用 java.sql.Statement 对不同类型的语句进行批处理,它们执行得很好。例如,一条语句下的更新和插入,提交一次。但是现在 java.sql.Statement 的问题是它现在做 preparedStatement 做的事情,人们称之为转义。同样,preparedStatement 的问题在于它只对相同模式的语句进行批处理,例如,您不能更新和插入。它必须是两者之一。

所以现在我想我会使用 java.sql.Statement,但是有没有一个库可以做 preparedStatement 做的事情,字符串转义以避免 Sql 注入(inject)。此外,如果我将批处理与另一个我可能不知道的术语搞错了,请更正我并告诉我我想做的事情叫做,即在一个 java.sql.Statement 下执行多个不同的语句。

最后一件事,当批处理时我意识到没有语法验证,这是我不想要的,在执行期间检查所有错误,这也可能属于可以验证 Sql 的库。

最佳答案

你说的都是对的。

您可以批量处理相似的语句集,并且可以立即执行。但据我所知,java 中没有库可以将不同类型的语句分组或批处理在一起并执行。

最后要说的是,当你使用PreparedStatement对象时,sql语句只会被编译一次,如果sql语句有任何错误,将被抛出,否则语句将被执行。如果相同的语句以不同的值再次发送到数据库,该语句将不会被编译并由数据库服务器简单地执行。

关于mysql - jdbc批处理不同语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19142833/

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