方式一:
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文件,有人說是使用了內部類,從代碼上看,可以這么說