Java Microsoft SQL Server在for循环中准备的语句不工作
我需要以下方面的帮助。我试了两种方法。两者都不起作用。没有更新行。相同的sql在没有循环的情况下工作(对于单个字符串)。但是我想对多个字符串执行相同的sql 方法1:Java Microsoft SQL Server在for循环中准备的语句不工作,java,sql-server,sql-update,prepared-statement,Java,Sql Server,Sql Update,Prepared Statement,我需要以下方面的帮助。我试了两种方法。两者都不起作用。没有更新行。相同的sql在没有循环的情况下工作(对于单个字符串)。但是我想对多个字符串执行相同的sql 方法1: PreparedStatement pstmt = null; String query = "UPDATE PeopleTable SET firstname = CAST(REPLACE(CAST(firstname as nvarchar(max)), ? ,'ReplacedFirstName
PreparedStatement pstmt = null;
String query = "UPDATE PeopleTable SET firstname = CAST(REPLACE(CAST(firstname as nvarchar(max)), ? ,'ReplacedFirstName') as ntext)";
pstmt = conn.prepareStatement(query);
for(String s: myList) {
pstmt.setString(1, s);
pstmt.addBatch();
}
pstmt.executeUpdate();
方法:2:
PreparedStatement pstmt = null;
String query = "UPDATE PeopleTable SET firstname = CAST(REPLACE(CAST(firstname as nvarchar(max)), ? ,'ReplacedFirstName') as ntext)";
pstmt = conn.prepareStatement(query);
for(String s: myList) {
pstmt.setString(1, s);
pstmt.executeUpdate();
stmt.clearParameters();
}
两者都不起作用。请帮忙。“两者都不起作用。”怎么办?是否有异常消息?在哪条线上?不正确的更新?没有更新行吗?请在您的问题中包括具体内容。没有行更新您需要提交您的声明吗?我看到一个prepare语句,但我认为您需要在executeFirst之后执行
conn.commit()
,正如@sniperd所说,您需要在每次executeUpdate之后提交。让我们先看看它是否有效,根据我自己的经验,您可能会遇到另一个问题。