- package com.suntek.chargeterm.thread;
- import java.sql.Types;
- import java.text.SimpleDateFormat;
- import java.util.Calendar;
- import java.util.Date;
- import org.apache.log4j.Logger;
- import com.suntek.eap.jdbc.CallableStatement;
- import com.suntek.eap.jdbc.ConnectionMetaData;
- import com.suntek.eap.jdbc.QueryHelper;
- import com.suntek.chargeterm.common.ComQuery;
- import com.suntek.chargeterm.util.log.ChargetermLogger;
- /**
- * 老化数据存储过程
- * author:cqh
- * @param timeParam
- * @return
- */
- public class SmsDataOldThread extends Thread{
- private QueryHelper queryHelper = ComQuery.getDefaultQueryHelper();
- private static Logger logger = ChargetermLogger.logger;
- @Override
- public void run() {
- if(JobMgr.start){
- this.excecutePROC();
- }
- }
- public void excecutePROC(){
- CallableStatement callableStatement = null;
- Calendar calendar=Calendar.getInstance();
- calendar.add(Calendar.DAY_OF_MONTH, -10);
- Date date=calendar.getTime();
- SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss ");
- String timeParam=sdf.format(date);
- timeParam=timeParam.substring(0, 10)+" "+"00:00:00";
- System.out.println("timeParam"+timeParam);
- boolean flag=true;
- try {
- String sql = null;
- // 判断数据库连接类型
- if (queryHelper.getMetaData().getDriverType() == ConnectionMetaData.TYPE_ORACLE) {
- sql = "{call PROC_CC_SMS_SEND_INFO_OLD (?,?,?)}";
- } else {
- // 不是oracle,则默认为sybase
- sql = "{call PROC_CC_SMS_SEND_INFO_OLD ?,?,?}";
- }
- callableStatement = queryHelper.callableStatement(sql);
- callableStatement.setString(1, timeParam);
- callableStatement.registerOutParameter(2, Types.INTEGER);
- callableStatement.registerOutParameter(3, Types.VARCHAR);
- callableStatement.execute();
- int result = callableStatement.getInt(2);
- logger.debug("[SmsDataOldThread.run()]调用存储过程[PROC_CC_SMS_SEND_INFO_OLD],参数:"+timeParam+" 返回结果:" + "result="+result);
- if(!(result==0)){
- logger.debug("[SmsDataOldThread.run()]存储过程[PROC_CC_SMS_SEND_INFO_OLD]返回结果不为0,操作失败!");
- flag=false;
- }
- if (result == 0) {
- logger.debug("[SmsDataOldThread.run()]老化数据存储过程[PROC_CC_SMS_SEND_INFO_OLD]执行 成功!");
- }
- } catch (Exception e) {
- logger.error("[SmsDataOldThread.run()]执行老化数据存储过程[SmsDataOldThread.run()]异常------>> throw exception-->"
- + e.getMessage());
- logger.error(e);
- } finally {
- try {
- if (callableStatement != null)
- callableStatement.close();
- } catch (Exception ex) {
- ex.printStackTrace();
- }
- }
- }
- }
- //该片段来自于http://www.codesnippet.cn/detail/2011201514053.html
来源: http://www.codesnippet.cn/detail/2011201514053.html