使用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