[問題] JAVA從DB撈取資料的問題
不好意思我又來請教各位
最近開發程式遇到一個bug
可是我想不出來可能的原因,也抓不到重點去google
小弟最近在做一個批價計算系統
設計一個每日累計與每月累計的表格
針對各個使用者累積價錢
流程大概是
有一個定時寫入批價系統的表格A
我寫的程式也是定時從表格A得取資料進行批價,並且累計在每日與每月的表格
我使用Quartz做排程
每次啟動時會從每日與每月的表格讀取資料
批價時,有資料就做累計
批完之後更新回資料庫
有測試過從開始到及結束更新回資料庫都是可以運作的
現在遇到一個bug是
當程式在第一次從DB撈取資料,之後.....完成後
時間到再次的從DB撈取資料,會發生讀到的是沒有包含第一次累積結果的資料
完全想不到問題在哪,只好來請教各位
在此先感謝大家
-------------
我撈db的CODE
private void setCurrentMap(){
try {
sql=
"SELECT A.IMSI,A.CHARGE,A.LAST_FILEID,A.SMS_TIMES,
A.LAST_DATA_TIME,A.VOLUME,A.MONTH,A.EVER_SUSPEND,
A.LAST_ALERN_THRESHOLD,A.LAST_ALERN_VOLUME "
+ "FROM HUR_CURRENT A "
+ "WHERE A.MONTH IN ('"+sYearmonth+"','"+sYearmonth2+"') ";
Statement st = conn.createStatement();
logger.debug("Execute SQL : "+sql);
ResultSet rs = st.executeQuery(sql);
logger.debug("Set current map...");
while(rs.next()){
Map<String,Object> map=new HashMap<String,Object>();
Map<String,Map<String,Object>> map2=new
HashMap<String,Map<String,Object>>();
String imsi =rs.getString("IMSI");
String month=rs.getString("MONTH");
if(currentMap.containsKey(month)){
map2=currentMap.get(month);
}
map.put("LAST_FILEID", rs.getInt("LAST_FILEID"));
map.put("SMS_TIMES", rs.getInt("SMS_TIMES"));
map.put("LAST_DATA_TIME",
(rs.getDate("LAST_DATA_TIME")!=null?
rs.getDate("LAST_DATA_TIME"):new Date()));
map.put("CHARGE", rs.getDouble("CHARGE"));
map.put("VOLUME", rs.getDouble("VOLUME"));
map.put("EVER_SUSPEND", rs.getString("EVER_SUSPEND"));
map.put("LAST_ALERN_THRESHOLD",
rs.getDouble("LAST_ALERN_THRESHOLD"));
map.put("LAST_ALERN_VOLUME",
rs.getDouble("LAST_ALERN_VOLUME"));
map2.put(imsi, map);
currentMap.put(month,map2);
}
st.close();
rs.close();
} catch (SQLException e) {
logger.error("At setCurrentMap occur
SQLException error", e);
}
}
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.132.72.213
※ 文章網址: http://www.ptt.cc/bbs/java/M.1419652289.A.BCF.html
推
12/28 09:04, , 1F
12/28 09:04, 1F
程式碼已貼上,排版可能有點傷眼,請見諒
→
12/28 11:42, , 2F
12/28 11:42, 2F
我的條件是依照日期取出,應該不會撈不到
狀況是
第一次處理
原始資料 A,A經過處理過後的資料 =>B
時間到再次處理
一樣撈取到A,而不是撈取到B
這邊感覺到困惑,先感謝兩位
※ 編輯: sthermit (220.132.72.213), 12/29/2014 10:44:37
→
12/29 11:42, , 3F
12/29 11:42, 3F
→
12/29 11:43, , 4F
12/29 11:43, 4F
→
12/29 11:44, , 5F
12/29 11:44, 5F
→
12/29 11:49, , 6F
12/29 11:49, 6F
→
12/29 11:51, , 7F
12/29 11:51, 7F
→
12/29 11:51, , 8F
12/29 11:51, 8F
→
12/29 11:53, , 9F
12/29 11:53, 9F
→
12/29 11:55, , 10F
12/29 11:55, 10F
抱歉,我敘述能力不夠好
流程是
從A讀出來資料
從B讀出資料
從C讀出資料
A批價之後累計到B與C
最後更新A批價結果
更新B累計結果
更新C累計結果
有先把資料讀出來放到記憶體後再使用
※ 編輯: sthermit (220.132.72.213), 12/29/2014 12:03:15
→
12/29 15:37, , 11F
12/29 15:37, 11F
→
12/29 15:38, , 12F
12/29 15:38, 12F
→
01/01 07:12, , 13F
01/01 07:12, 13F
→
01/01 07:13, , 14F
01/01 07:13, 14F
→
01/01 07:14, , 15F
01/01 07:14, 15F
→
01/01 07:14, , 16F
01/01 07:14, 16F