回滚到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
推荐阅读
在当前众多持久层框架中,MyBatis(前身为iBatis)凭借其轻量级、易用性和对SQL的直接支持,成为许多开发者的首选。本文将详细探讨MyBatis的核心概念、设计理念及其优势。 ...
[详细]
蜡笔小新 2024-12-27 12:17:16
This guide provides a comprehensive step-by-step approach to successfully installing the MongoDB PHP driver on XAMPP for macOS, ensuring a smooth and efficient setup process. ...
[详细]
蜡笔小新 2024-12-27 19:58:25
1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ...
[详细]
蜡笔小新 2024-12-27 19:32:17
本文详细介绍了 Dockerfile 的编写方法及其在网络配置中的应用,涵盖基础指令、镜像构建与发布流程,并深入探讨了 Docker 的默认网络、容器互联及自定义网络的实现。 ...
[详细]
蜡笔小新 2024-12-27 17:31:41
在哈佛大学商学院举行的Cyberposium大会上,专家们深入探讨了开源软件的崛起及其对企业市场的影响。会议指出,开源软件不仅为企业提供了新的增长机会,还促进了软件质量的提升和创新。 ...
[详细]
蜡笔小新 2024-12-27 14:49:56
作为一名新手,您可能会在初次尝试使用Eclipse进行Struts开发时遇到一些挑战。本文将为您提供详细的指导和解决方案,帮助您克服常见的配置和操作难题。 ...
[详细]
蜡笔小新 2024-12-27 09:57:58
本文介绍如何在PHPCMS V9中创建和管理多个站点,包括配置独立域名、设置动态URL,并确保各子站能够正常运行。我们将详细讲解从新建站点到最终配置路由的每一步骤。 ...
[详细]
蜡笔小新 2024-12-27 05:15:58
本文详细分析了Hive在启动过程中遇到的权限拒绝错误,并提供了多种解决方案,包括调整文件权限、用户组设置以及环境变量配置等。 ...
[详细]
蜡笔小新 2024-12-26 19:14:29
本文详细介绍了Java中org.w3c.dom.Text类的splitText()方法,通过多个代码示例展示了其实际应用。该方法用于将文本节点在指定位置拆分为两个节点,并保持在文档树中。 ...
[详细]
蜡笔小新 2024-12-26 18:31:42
本文探讨了如何优化和正确配置Kafka Streams应用程序以确保准确的状态存储查询。通过调整配置参数和代码逻辑,可以有效解决数据不一致的问题。 ...
[详细]
蜡笔小新 2024-12-26 18:17:14
本文详细介绍了 Apache Jena 库中的 Txn.executeWrite 方法,通过多个实际代码示例展示了其在不同场景下的应用,帮助开发者更好地理解和使用该方法。 ...
[详细]
蜡笔小新 2024-12-26 17:55:52
网络运维工程师负责确保企业IT基础设施的稳定运行,保障业务连续性和数据安全。他们需要具备多种技能,包括搭建和维护网络环境、监控系统性能、处理突发事件等。本文将探讨网络运维工程师的职业前景及其平均薪酬水平。 ...
[详细]
蜡笔小新 2024-12-26 14:35:04
2013年5月9日,PHP官方发布了PHP 5.5.0rc1和PHP 5.4.15正式版,这两个版本均支持64位环境。本文将详细介绍Zend OPcache的功能及其在Windows环境下的配置与测试。 ...
[详细]
蜡笔小新 2024-12-26 12:56:20
本文详细介绍了 Java 中 org.apache.xmlbeans.SchemaType 类的 getBaseEnumType() 方法,提供了多个代码示例,并解释了其在不同场景下的使用方法。 ...
[详细]
蜡笔小新 2024-12-26 11:46:55
本文介绍如何在Java项目中使用Log4j库进行日志记录。我们将详细说明Log4j库的引入、配置及简单应用,帮助开发者快速上手。 ...
[详细]
蜡笔小新 2024-12-26 10:59:04