使用JdbcTemplate 批量更新數據,會出現數據不准的情況


方式一:

public void updateTicketInfo(List<CmsCyUser> users) {

       if(users==null||users.size()==0){

           return;

       }

       final List<CmsCyUser> cyUsers = users;

        String sql = "update CMS_CY_USER set TICKETS=?,NEW_TICKETS=? where race_num=?";

       jdbcTemplate_oracle.batchUpdate(sql,

              new BatchPreparedStatementSetter() {

                  public void setValues(PreparedStatement ps, int i) throws SQLException {

                     CmsCyUser user = cyUsers.get(i);

                     ps.setLong(1, user.getNewTickets());

                     ps.setLong(2, user.getNewTickets());//短信平台票數

                     ps.setString(3, user.getRaceNum());

                  }

                   public int getBatchSize() {

                     return cyUsers.size();

                  }

              });

       resetTickets(users,jdbcTemplate_oracle);

    }

 

方式二:

String sql = "update CMS_CY_USER t set TICKETS=?,t.NEW_TICKETS=t.TICKETS  where race_num=?";

       jdbcTemplate_oracle.batchUpdate(sql,

              new BatchPreparedStatementSetter() {

                  public void setValues(PreparedStatement ps, int i) throws SQLException {

                     CmsCyUser user = cyUsers.get(i);

                     ps.setInt(1, user.getNewTickets().intValue());

                  //  ps.setLong(2, user.getNewTickets());//短信平台票數

                     ps.setString(2, user.getRaceNum());

                  }

                   public int getBatchSize() {

                     return cyUsers.size();

                  }

              });

同時還伴隨着一種奇怪的現象,程序代碼在tomcat中運行的很好,但是當把程序放到weblogic上面的時候,就會出錯,

沒有辦法只好繼續修改,程序代碼,代碼改變了好幾種實現方式,在tomcat中依然運行良好,一部署到weblogic中就會出錯

最終發現問題,當修改了1個java的源代碼后,一般的情況下會出現1個.class文件,

但是此次出現了2個.class文件,一個.class的文件名中是帶着$的,看起來是就像是備份文件,因此沒有一起部署到weblogic中

在本地的tomcat中 ,都有2個.class文件,且都是一起存在,所以在tomcat中運行沒有問題,由於在部署到weblogic時

少了一個.class文件,因此程序老是報錯

為什么一個.java文件,編譯后會出現帶$的.class文件,有人說是使用了內部類,從代碼上看,可以這么說


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM