回滚到fisrt()时注意使用next()时需要将光标移到第一行之前使用previous();packagecom.trs.util;www.2cto.comimportjava.util.Calendar;importjava.util.Date;importjava.util.Properties;impor...
回滚到fisrt()时注意使用next()时需要将光标移到第一行之前 使用previous();
package com.trs.util;
www.2cto.com
import java.util.Calendar;
import java.util.Date;
import java.util.Properties;
import java.sql.Connection;
import java.sql.ResultSet;
import java.text.SimpleDateFormat;
import org.apache.log4j.Logger;
import com.trs.client.TRSConnection;
import com.trs.client.TRSResultSet;
import com.trs.dao.oracleDao;
import com.trs.dao.trsDao;
public class checkTest {
private static Logger CheckTRSLogger = Logger.getLogger("CheckTRSLogger");
public static void check(){
Date dateSta = null; //时间段起始
Date dateEnd = null; //时间段结束
Date dateComp = null; //总时间截止
Calendar calSta=Calendar.getInstance();
Calendar calEnd=Calendar.getInstance();
Calendar calComp=Calendar.getInstance();
String calStaString = ""; www.2cto.com
String calEndString = "";
TRSConnection trsCon = null;
TRSResultSet trsRs = null;
Connection oraCon = null;
ResultSet oracleRs = null;
String table = "";//oracle中检索的表名
String tableTem = "";//oracle中临时的表名
String tableRecord =""; //记录遗漏的记录
String column_oracle1 = "";//oracel中检索的关键字段
String column_oracle2 = "";//oracel中检索的字段
String host = "";//trs
数据库ip
String port = "";//trs数据库端口
String username = "";//trs数据库用户名
String password = "";//trs数据库密码
String library = "";//trs数据库中检索库名
String column_trs1 = "";//trs数据库中检索字段名
String column_trs2 = "";//trs数据库中关键字段名
int trsNum = 0; //TRS记录数量
int oracleNum = 0; //
Oracle 记录数量
try {
DBUtil.loadProperties("oracleconfig.properties");
} catch (Exception e2) { www.2cto.com
e2.printStackTrace();
CheckTRSLogger.error(e2.getMessage());
}
table = DBUtil.getConfigInfo("table");
tableTem = DBUtil.getConfigInfo("tableTem");
tableRecord = DBUtil.getConfigInfo("tableRecord");
column_oracle1 = DBUtil.getConfigInfo("column_oracle1");
column_oracle2 = DBUtil.getConfigInfo("column_oracle2");
try {
DBUtil.loadProperties("trsconfig.properties");
} catch (Exception e2) {
e2.printStackTrace();
CheckTRSLogger.error(e2.getMessage());
}
host = DBUtil.getConfigInfo("host");//trs数据库ip
port = DBUtil.getConfigInfo("port");//trs数据库端口
username = DBUtil.getConfigInfo("username");//trs数据库用户名
password = DBUtil.getConfigInfo("password");//trs数据库密码
library = DBUtil.getConfigInfo("library");//trs数据库中检索库名
column_trs1 = DBUtil.getConfigInfo("column1");//trs数据库中检索字段名
column_trs2 = DBUtil.getConfigInfo("column2");//trs数据库中检索关键字段名 ID
try {
DBUtil.loadProperties("timeLimits.properties");
} catch (Exception e2) {
e2.printStackTrace();
CheckTRSLogger.error(e2.getMessage());
}
String dateStaString = DBUtil.getConfigInfo("DateSta");
String dateEndString = DBUtil.getConfigInfo("dateEnd");
String dateCompString = DBUtil.getConfigInfo("dateComp");
String dataFormate = "yyyy.MM.dd HH:mm:ss"; www.2cto.com
SimpleDateFormat dateformat = new SimpleDateFormat(dataFormate);
try{
dateSta = dateformat.parse(dateStaString);
dateEnd = dateformat.parse(dateEndString);
dateComp = dateformat.parse(dateCompString);
calSta.setTime(dateSta);
calEnd.setTime(dateEnd);
calComp.setTime(dateComp);
}catch(Exception e){
e.printStackTrace();
CheckTRSLogger.error(e.getMessage());
}
int dayNum =(calEnd.get(Calendar.YEAR)-calSta.get(Calendar.YEAR))*365
+calEnd.get(Calendar.DAY_OF_YEAR)-calSta.get(Calendar.DAY_OF_YEAR);
String calCompString = dateformat.format(calComp.getTime());
//时间量小于截止时间执行比对程序
while(calEnd.before(calComp)){
calStaString = dateformat.format(calSta.getTime());
calEndString = dateformat.format(calEnd.getTime());
try{
trsCon = trsDao.getTRSConnection(host, port, username, password);
trsRs = trsDao.readTRS(trsCon, library, column_trs1, calStaString, calEndString);
trsNum = (int)trsRs.getRecordCount();
CheckTRSLogger.info("此时间段"+calStaString+"-----"+calEndString+"TRS记录量"+trsNum);
oraCon = oracleDao.getOracleConnection();
oracleRs = oracleDao.readOracle(oraCon, table, column_oracle1,column_oracle2, calStaString, calEndString);
oracleRs.last(); www.2cto.com
oracleNum = oracleRs.getRow();
oracleRs.first();
oracleRs.previous();
if(oracleNum>trsNum){
if(trsNum>0){
for (int i = 0; i
{
trsRs.moveTo(0, i);
String columnValue = trsRs.getString(column_trs2);
oracleDao.insertOracle(oraCon,tableTem,column_oracle1,columnValue);
}
try{
trsRs.close();
trsCon.close();
}catch(Exception e){
e.printStackTrace();
CheckTRSLogger.error(e.getMessage());
}
while(oracleRs.next()){
String temColumnValue = oracleRs.getString(column_oracle1);
if(!oracleDao.isExt(oraCon,tableTem,column_oracle1,temColumnValue)){
oracleDao.insertOracle(oraCon ,tableRecord,column_oracle1,temColumnValue);
}
}
oracleDao.deleteOracle(oraCon,tableTem);
}else{
while(oracleRs.next()){
String temColumnValue1 = oracleRs.getString(column_oracle1);
oracleDao.insertOracle(oraCon ,tableRecord,column_oracle1,temColumnValue1);
} www.2cto.com
}
}
}catch(Exception e){
e.printStackTrace();
CheckTRSLogger.error(e.getMessage());
}finally{
try{
oracleRs.close();
}catch(Exception e){
e.printStackTrace();
CheckTRSLogger.error(e.getMessage());
}
try{
oraCon.close();
}catch(Exception e){
e.printStackTrace();
CheckTRSLogger.error(e.getMessage());
}
try{
trsRs.close();
}catch(Exception e){
e.printStackTrace();
CheckTRSLogger.error(e.getMessage());
}
try{
trsCon.close();
}catch(Exception e){
e.printStackTrace();
CheckTRSLogger.error(e.getMessage());
}
} www.2cto.com
CheckTRSLogger.info("已对比的时间段:"+calStaString+"----------"+calEndString);
calSta = (Calendar)calEnd.clone();
calEnd.add(Calendar.DAY_OF_YEAR, dayNum);
}
}
}
作者 ygsilence
推荐阅读
-
本文详细介绍如何使用MySQL数据库进行环境搭建,包括创建数据库表并插入示例数据。随后,逐步指导如何配置Maven项目,整合Spring框架与MyBatis,实现高效的数据访问。 ...
[详细]
蜡笔小新 2024-11-21 18:39:23
-
本文探讨了适合编程新手的最佳语言选择,包括Python、JavaScript等易于上手且功能强大的语言,以及如何通过有效的学习方法提高编程技能。 ...
[详细]
蜡笔小新 2024-11-22 16:17:04
-
-
本文探讨了Android系统中联系人数据库的设计,特别是AbstractContactsProvider类的作用与实现。文章提供了对源代码的详细分析,并解释了该类如何支持跨数据库操作及事务处理。源代码可从官方Android网站下载。 ...
[详细]
蜡笔小新 2024-11-24 18:04:54
-
本文通过一个具体的Hadoop MapReduce案例,详细介绍了如何利用MapReduce框架来统计和分析手机用户的流量使用情况,包括上行和下行流量的计算以及总流量的汇总。 ...
[详细]
蜡笔小新 2024-11-23 20:11:23
-
本文详细探讨了如何根据不同的应用场景选择合适的PHP版本,包括多版本切换技巧、稳定性分析及针对WordPress等特定平台的版本建议。 ...
[详细]
蜡笔小新 2024-11-23 17:00:59
-
本文详细介绍了如何通过JDBC连接Hive进行数据操作,包括Hive服务的启动、相关依赖的配置以及具体代码示例,适合对Hive和JDBC有一定了解的开发者阅读。 ...
[详细]
蜡笔小新 2024-11-23 16:52:02
-
本文由chszs撰写,详细介绍了Apache Mina框架的核心开发流程及自定义协议处理方法。文章涵盖从创建IoService实例到协议编解码的具体步骤,适合希望深入了解Mina框架应用的开发者。 ...
[详细]
蜡笔小新 2024-11-23 15:02:21
-
本文详细介绍了Spring Security的基础配置方法,包括如何搭建Maven多模块工程以及具体的安全配置步骤,帮助开发者更好地理解和应用这一强大的安全框架。 ...
[详细]
蜡笔小新 2024-11-22 20:52:07
-
计划建立个人博客来分享生活与工作的见解和经验,选择WordPress是因为它专为博客设计,功能强大且易于使用。 ...
[详细]
蜡笔小新 2024-11-22 11:13:36
-
本文探讨了HBase在企业级应用中的数据复制与灾备同步解决方案,包括存量数据迁移及增量数据实时同步的方法。 ...
[详细]
蜡笔小新 2024-11-21 19:20:03
-
本文详细介绍了在 CentOS 系统中如何创建和管理 SWAP 分区,包括临时创建交换文件、永久性增加交换空间的方法,以及如何手动释放内存缓存。 ...
[详细]
蜡笔小新 2024-11-21 19:01:54
-
本文详细介绍了 `org.apache.tinkerpop.gremlin.structure.VertexProperty` 类中的 `key()` 方法,并提供了多个实际应用的代码示例。通过这些示例,读者可以更好地理解该方法在图数据库操作中的具体用途。 ...
[详细]
蜡笔小新 2024-11-21 17:38:10
-
本文详细介绍了 Java 中 org.apache.jena.atlas.lib.ByteBufferLib 类下的 acopyArray 方法,并提供了多个实际应用中的代码示例,帮助开发者更好地理解和使用该方法。 ...
[详细]
蜡笔小新 2024-11-21 10:26:11
-
从理想主义者的内心深处萌发的技术信仰,推动了云原生技术在全球范围内的快速发展。本文将带你深入了解阿里巴巴在开源领域的贡献与成就。 ...
[详细]
蜡笔小新 2024-11-21 09:06:54
-
随着神经网络模型的不断深化和复杂化,训练这些模型变得愈发具有挑战性,不仅需要处理大量的权重,还必须克服内存限制等问题。本文将介绍10款优秀的Python框架,帮助开发者高效地实现分布式和并行化的深度学习模型训练。 ...
[详细]
蜡笔小新 2024-11-20 19:44:05
-