import java.sql.*;
import java.io.*;
import java.util.*;
import java.lang.*;import java.util.Timer;
import java.util.TimerTask;
import java.awt.Toolkit;public class Test{
    static String h;
    static int count;      //定义变量,以计算当天的航班记录数。
    public String ssss;    //定义全局变量,传递SQLString值。
    Toolkit toolkit;
    Timer timer;
    
    public Test(){
     toolkit=Toolkit.getDefaultToolkit();
        timer=new Timer();
        timer.schedule(new RemindTask(),0,180*1000);        
    }
    
    class RemindTask extends TimerTask{
    
       public void run(){        int year,month,date;  //定义三个整行变量,用来存储当前时间。
    int hour,minute,second; String months;
String days;
String hours;
String minutes;
String seconds;
//定义字符串变量,用来存储整形变量转变字符串以后的数值。
String I="";

Calendar cal=Calendar.getInstance();  //获得Calendar的实体
year=cal.get(Calendar.YEAR);          //取系统当前时间--年
month=cal.get(Calendar.MONTH)+1;      //取系统当前时间--月
date=cal.get(Calendar.DATE);          //取系统当前时间--日        hour=cal.get(Calendar.HOUR_OF_DAY);
minute=cal.get(Calendar.MINUTE);
second=cal.get(Calendar.SECOND);

if(month<10) 
   months="0"+month;
else
   months=Integer.toString(month);
   
if(date<10)
   days="0"+date;
else
   days=Integer.toString(date);               if(hour<10)   
           hours="0"+hour;
        else
           hours=Integer.toString(hour);
        
        if(minute<10)      
   minutes="0"+minute;
else
   minutes=Integer.toString(minute);

if(second<10)
   seconds="0"+second;   
else
   seconds=Integer.toString(minute);
      
String TimeName=(""+year+""+months+""+days+"");
//System.out.println(""+year+""+months+""+days+"");
        String TimeName1=(""+hours+""+minutes+""+seconds+"");
        //new add
    StringBuffer sb=new StringBuffer();        sb.append("'").append(cal.get(Calendar.YEAR)).append("-").append(months).append("-").append(days).append("'");                                                    
        
        String sbsb= sb.toString();
        //end
        //StringBuffer tb=new StringBuffer();
        //tb.append("'").append(hours).append("-").append(minute).append("-").append(seconds).append("'");
        //String tbtb=tb.toString();
        
        String sourceURL="jdbc:oracle:thin:@10.10.10.3:1521:AODB";
        String user="vgds";
        String password="vgds6327";
       
        try {Class.forName("oracle.jdbc.driver.OracleDriver");}
        catch (ClassNotFoundException ce)
            { System.out.println("SQLException1:" +ce.getMessage());}
        
        try{
             String h = null ;
             String SQLString2 = "SELECT T7037.serial_no FROM T7037 ORDER BY serial_no DESC";
             Connection con = DriverManager.getConnection(sourceURL,user,password);
             Statement stmt = con.createStatement();
            
             if( h.equals(null))
                  {   
                      ResultSet rs2=stmt.executeQuery(SQLString2);
                      while (rs2.next())
                      {
                     
                      h = rs2.getString(1);//取第一条纪录索引}?
                      }
                    //String SQLString = "SELECT T3001.GATE,T7037.OPERATION_DATE,T7037.FLIGHT_NO,T7037.AIRCRAFT_TYPE_IATA,T7037.STA,T7037.STA FROM T7037 WHERE (OPERATION_DATE = TO_DATE("+ sbsb +",'YYYY-MM-DD')) AND (T7037.A_OR_D= 'A') AND (T7037.D_or_I='I')  ";
                     String SQLString = "SELECT T3001.GATE,T7037.OPERATION_DATE,T7037.FLIGHT_NO,T7037.AIRCRAFT_TYPE_IATA,T7037.STA,T7037.STA FROM T3001,T7037 WHERE (T3001.OPERATION_DATE=T7037.OPERATION_DATE) AND (T3001.FLIGHT_NO = T7037.FLIGHT_NO) AND (T7037.OPERATION_DATE = TO_DATE("+ sbsb +",'YYYY-MM-DD')) AND (T7037.A_OR_D= 'A')";
                      ssss = SQLString;                  }
             else {   
                      String SQLString = "SELECT T3001.GATE,T7037.OPERATION_DATE,T7037.FLIGHT_NO,T7037.AIRCRAFT_TYPE_IATA,T7037.STA,T7037.STA FROM T3001,T7037 WHERE (T3001.OPERATION_DATE=T7037.OPERATION_DATE) AND (T3001.FLIGHT_NO = T7037.FLIGHT_NO) AND (T7037.OPERATION_DATE = TO_DATE("+ sbsb +",'YYYY-MM-DD')) AND (T7037.A_OR_D= 'A') AND (T7037.serial_no > h) ";
                      ResultSet rs2=stmt.executeQuery(SQLString2);
                     while (rs2.next())
                      {
         //          String SQLString = "SELECT T3001.GATE,T7037.OPERATION_DATE,T7037.FLIGHT_NO,T7037.AIRCRAFT_TYPE_IATA,T7037.STA,T7037.STA FROM T3001,T7037 WHERE (OPERATION_DATE = TO_DATE("+ sbsb +",'YYYY-MM-DD')) AND (T7037.A_OR_D= 'A') AND (T7037.D_or_I='I')AND (T7037.SEQUENCE>h) ";
                  // String SQLString = "SELECT T3001.GATE,T7037.OPERATION_DATE,T7037.FLIGHT_NO,T7037.AIRCRAFT_TYPE_IATA,T7037.STA,T7037.STA FROM T3001,T7037 WHERE (T3001.OPERATION_DATE=T7037.OPERATION_DATE) AND (T3001.FLIGHT_NO = T7037.FLIGHT_NO) AND (T7037.OPERATION_DATE = TO_DATE("+ sbsb +",'YYYY-MM-DD')) AND (T7037.A_OR_D= 'A') AND (T7037.D_or_I='I') AND (T7037.SEQUENCE>h) ";
         
                      h = rs2.getString(1) ; //取第一条纪录索引?
                      }
                      ssss = SQLString;                  } 
            stmt.close();
            con.close(); 
                  }
         catch (SQLException e)
             {System.out.println("SQLException2:"+e.getMessage());}
         try{
             Connection con1 = DriverManager.getConnection(sourceURL,user,password);
             Statement stmt1 = con1.createStatement();
             ResultSet rs1=stmt1.executeQuery(ssss);
             while (rs1.next())
                     {count=rs1.getRow();}  //计算当天的航班数量
                     //stmt1.close();
                     //con1.close(); 
                      

解决方案 »

  1.   

    for(int i=1; i<(count);i++)
                       {if (rs1.next())
                             {
                              long time = System.currentTimeMillis();
                              java.util.Date time2 = new java.util.Date(time);
                               String s0 = time2.toString();                          //将操作日期改为标准格式
                               String s1_t=rs1.getString(2);
                               int m=s1_t.length();
                               int n=m-2;
                               String s1=s1_t.substring(0,n);                           //取航班号
                               String s2=rs1.getString(3);
                               
                               //将STT时间改为标准格式
                               String s33_t=rs1.getString(5);
                               int m11=s33_t.length();
                               int n11=m11-2;
                               String s34=s33_t.substring(0,n11);                           //将ETD日期改为标准格式
                               String s3_t=rs1.getString(6);
                               int m1=s3_t.length();
                               int n1=m1-2;
                               String s3=s3_t.substring(0,n1);                           String s11=rs1.getString(4);
                               String s13=s11.trim();
                               String s12 = new String();
                               //A300 D1
                               if (s13.equals("A300"))
                                   s12 = "AB4";
                               else if (s13.equals("AB4"))
                                   s12 = "AB4";
                              //A300 6D1
                              else if (s13.equals("A300-600"))
                                  s12 = "AB6";
                               else if (s13.equals("A306"))
                                  s12 = "AB6";
                               else if (s13.equals("EA30"))
                                  s12 = "AB6";
                               else if (s13.equals("AB6"))
                                  s12 = "AB6";
                              
    //字符串常量
                               String st4113="# FIS-AODB : EVENT 4113 : ";
                               String st4117="# FIS-AODB : EVENT 4117 : ";
                               String st4130="# FIS-AODB : EVENT 4130 : ";
                               String st1=" FNO;";
                               String st2=";A_OR_D;A;UNI;";
                               String st3="+";
                               String st4="+A;ONO;O;STT;";
                               String st5=";IDU;I;ODA;";
                               String st6=";ETT;";
                               String st7=";ATY;";
                                 
                               String K="K";
                                 
                               String st8="BAY_SET;";
                               String st9=";BAY_STT;";
                               String st10=";FNO;";
                               String st11=";UNI;";
                               String st12="+A;ONO;O;GAT;";
                               String st13=";IDU;I;POS;";
                               String st14="ODA;";                           //输出字符串,生成4113事件
                               String sf4113=(st4113+s0+"\n"+st1+s2+K+st2+s2+K+st3+s1+st4+s34+st5+s1+st7+s12);
                               //System.out.println(sf);
                                //构建文件名
                                File f4113=new File("/test/data/4113/","nmlb.data");                            try{
                                 if(i<10)
                                    I="000"+Integer.toString(i);
                                 else
                                     if(10<=i&&i<=99)
                                        I="00"+Integer.toString(i);
                                     else
                                        if(100<=i&&i<=300)    
                                           I="0"+Integer.toString(i);
                                
                                     BufferedWriter kow4113=new BufferedWriter(new FileWriter("/test/data/4113/" +"pekfis_"+TimeName+"_"+TimeName1+"_"+I+".data"));
                                     kow4113.write(sf4113,0,sf4113.length());
                                     kow4113.flush();
                                    }
                                catch(IOException v)
                                    {System.out.println("SQLException3:"+v.getMessage());} 
                               String sf4117=(st4117+s0+"\n"+st1+s2+K+st2+s2+K+st3+s1+st4+s34+st5+s1+st6+s3+st7+s12);
                               //System.out.println(sf);
                                //构建文件名
                                File f4117=new File("/test/data/4113/","nmlb.data");                            try{
                                   
                                    if(i<10)
                                    I="100"+Integer.toString(i);
                                 else
                                     if(10<=i&&i<=99)
                                        I="10"+Integer.toString(i);
                                     else  
                                        if(100<=i&&i<=999)    
                                           I="1"+Integer.toString(i);
                                
                                     BufferedWriter kow4117=new BufferedWriter(new FileWriter("/test/data/4117/" +"pekfis_"+TimeName+"_"+TimeName1+"_"+I+".data"));
                                     kow4117.write(sf4117,0,sf4117.length());
                                     kow4117.flush();
                                    }
                                    
                                catch(IOException v1)
                                    {System.out.println("SQLException4:"+v1.getMessage());}
                                    
                                    
                                String sf4130=(st4130+s0+"\n"+st8+s3+st1+s2+K+st9+s3+st11+s2+K+st3+s1+st12+"GATE_205"+st13+"205"+st14+s1);
                               //System.out.println(sf);
                                //构建文件名
                                File f4130=new File("/test/data/4113/","nmlb.data");                            try{
                                 if(i<10)
                                    I="200"+Integer.toString(i);
                                 else
                                     if(10<=i&&i<=99)
                                        I="20"+Integer.toString(i);
                                     else
                                        if(100<=i&&i<=999)    
                                           I="2"+Integer.toString(i);
                                
                                     BufferedWriter kow4130=new BufferedWriter(new FileWriter("/test/data/4130/" +"pekfis_"+TimeName+"_"+TimeName1+"_"+I+".data"));
                                     kow4130.write(sf4130,0,sf4130.length());
                                     kow4130.flush();
                                    }
                                    
                                catch(IOException v2)
                                    {System.out.println("SQLException5:"+v2.getMessage());}
                                    
                                    
                                     }
                                     
                                    }
                                stmt1.close();
                                con1.close();
                                  toolkit.beep();
                      //          System.out.println("共生成了"+count+"条数据!");
                                System.out.println("DataFile Output successfully!");
                           }
                        catch (SQLException g)
                                    {System.out.println("SQLException6:"+g.getMessage());}
                                      }
                
        }
       
        public static void main(String args[]){
            new Test(); 
        }
    }
      

  2.   

    我把有关数据库操作的102行到339行都给注释了,把
    timer.schedule(new RemindTask(),0,180*1000); 的180*1000改成了1000,在run()里加了个打印的语句,现在没什么问题