作者 朱兆平

已ROWNUM为基础,发送数据

... ... @@ -8,12 +8,19 @@ package com.airport.bean;
public class MessageBak {
private int fid;
private String content;
private int rownum_;
public MessageBak(int fid, String content) {
this.fid = fid;
this.content = content;
}
public MessageBak(int fid, String content,int rownum_) {
this.fid = fid;
this.content = content;
this.rownum_ = rownum_;
}
public String toString() {
return this.fid + " " + this.content;
}
... ... @@ -33,4 +40,12 @@ public class MessageBak {
public void setContent(String content) {
this.content = content;
}
public int getRownum_() {
return rownum_;
}
public void setRownum_(int rownum_) {
this.rownum_ = rownum_;
}
}
... ...
... ... @@ -111,7 +111,7 @@ public class IMFSender extends TimerTask {
logger.info("开始发送数据 XML:" + sendMsg);
String is_send_ok = this.client.sendMSG(sendMsg);
logger.info("is_send_ok=" + is_send_ok);
is_ok = Utils.writeFIDIndex(this.indexFileName, m.getFid());
is_ok = Utils.writeFIDIndex(this.indexFileName, m.getRownum_());
logger.debug("FID:" + m.getFid() + " 缓存成功");
++times;
} else {
... ...
... ... @@ -121,7 +121,7 @@ public class DaoImpl implements Dao {
String SQL_FMT = "select FID,CONTENT from MESSAGE_BAK WHERE (FID>%s and FID<%s+%s) AND (TYPE='CLR' OR TYPE='ES1' OR TYPE='IS1' OR STYP = 'BSTA' OR STYP = 'FZE_RCF' OR STYP = 'FSU_FOH' OR STYP = 'FSU_DEP' OR STYP = 'COST' OR STYP = 'ABME' OR STYP = 'FZE_DEP' OR STYP = 'FSU_RCF') ORDER BY FID ";
//从配置文件读取sql语句
String sql_select=ConfigUtils.SQl;
String sql = String.format(sql_select, fid, fid, ConfigUtils.RECORD_COUNT);
String sql = String.format(sql_select, fid, fid, ConfigUtils.RECORD_COUNT); //这里修改从FID_INDEX文件读取的FID ,改为取搜索结果的rownum
logger.info(sql);
final LobHandler lobHandler = new DefaultLobHandler();
final ArrayList xmlList = new ArrayList();
... ... @@ -130,12 +130,13 @@ public class DaoImpl implements Dao {
this.jdbcTemplate.query(sql, new AbstractLobStreamingResultSetExtractor() {
protected void streamData(ResultSet rs) throws SQLException, IOException, DataAccessException {
String content = "";
int rownum=0;
while(rs.next()) {
int fid = rs.getInt(1);
content = lobHandler.getClobAsString(rs, "CONTENT");
rownum = rs.getInt("rownum_");
if (content != null) {
MessageBak obj = new MessageBak(fid, content);
MessageBak obj = new MessageBak(fid, content,rownum);
xmlList.add(obj);
} else {
DaoImpl.logger.error("FID=" + fid + " content is NULL");
... ...