Java Microsoft SQL Server在for循环中准备的语句不工作

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

我需要以下方面的帮助。我试了两种方法。两者都不起作用。没有更新行。相同的sql在没有循环的情况下工作(对于单个字符串)。但是我想对多个字符串执行相同的sql

方法1:

       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之后提交。让我们先看看它是否有效,根据我自己的经验,您可能会遇到另一个问题。