public DictKungFuType update(DictKungFuType model, int instPlayerId) throws Exception { try { Object[] params = null; int version = model.getVersion() + 1; StringBuffer sql = new StringBuffer("update Dict_KungFuType set "); sql.append("name=?,sname=?,description=?,version=? "); sql.append("where id=? and version=?"); params = new Object[] { model.getName(), model.getSname(), model.getDescription(), version, model.getId(), model.getVersion() }; int count = this.getJdbcTemplate().update(sql.toString(), params); if (count == 0) { throw new Exception("Concurrent Exception"); } else { model.setVersion(version, 0); PlayerMemObj playerMemObj = getPlayerMemObjByPlayerId(instPlayerId); if (instPlayerId != 0 && isUseCach() && playerMemObj != null) { playerMemObj.dictKungFuTypeMap.put(model.getId(), model); } } } catch (Exception e) { throw e; } return model; }
@SuppressWarnings("unchecked") public DictKungFuType getModel(int id, int instPlayerId) { try { PlayerMemObj playerMemObj = getPlayerMemObjByPlayerId(instPlayerId); if (instPlayerId != 0 && isUseCach() && playerMemObj != null) { DictKungFuType model = playerMemObj.dictKungFuTypeMap.get(id); if (model == null) { String sql = "select * from Dict_KungFuType where id=?"; Object[] params = new Object[] {id}; playerMemObj.dictKungFuTypeMap.put( id, (DictKungFuType) this.getJdbcTemplate().queryForObject(sql, params, new ItemMapper())); } else { int cacheVersion = model.getVersion(); List<Map<String, Object>> list = sqlHelper("select version from Dict_KungFuType where id = " + id); int dbVersion = (int) list.get(0).get("version"); if (cacheVersion != dbVersion) { String sql = "select * from Dict_KungFuType where id=?"; Object[] params = new Object[] {id}; playerMemObj.dictKungFuTypeMap.put( id, (DictKungFuType) this.getJdbcTemplate().queryForObject(sql, params, new ItemMapper())); } } model = playerMemObj.dictKungFuTypeMap.get(id); model.result = ""; return model; } else { String sql = "select * from Dict_KungFuType where id=?"; Object[] params = new Object[] {id}; DictKungFuType model = (DictKungFuType) this.getJdbcTemplate().queryForObject(sql, params, new ItemMapper()); model.result = ""; return model; } } catch (DataAccessException e) { return null; } }
private List<DictKungFuType> listCacheCommonHandler(String sql, int instPlayerId) { List<DictKungFuType> modelList = new ArrayList<DictKungFuType>(); PlayerMemObj playerMemObj = getPlayerMemObjByPlayerId(instPlayerId); SqlRowSet rsSet = this.getJdbcTemplate().queryForRowSet(sql.toString()); while (rsSet.next()) { int id = rsSet.getInt("id"); int dbVersion = rsSet.getInt("version"); DictKungFuType model = playerMemObj.dictKungFuTypeMap.get(id); if (model == null) { model = getModel(id, instPlayerId); model.result = ""; modelList.add(model); } else { int cacheVersion = model.getVersion(); if (cacheVersion != dbVersion) { model = getModel(id, instPlayerId); } model.result = ""; modelList.add(model); } } return modelList; }