3 Replies Latest reply on May 18, 2007 8:14 PM by 807606

    BufferedWriter error

    807606
      the output of SQL query is around 19254 rows. But my below code writes only 18700 files. Sometimes the o/p file as 18900 rows. No idea why the file write is having error
      public class Application_DBmap
      {
      
      
          String noofrecords="",dbcount="";
          public Application_DBmap(){}
      /*
        This is for opening a database connection
      */
      
      
         public Connection opendb()
         {
              Connection conn;
              // Load the Oracle JDBC driver
              try
              {
                   DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
                   conn = DriverManager.getConnection(
                             "jdbc:oracle:thin:@ip:port:MR","id","pwdl");
              }
              catch (SQLException ex)
              {
                   return null;
              }
              return conn;
      }
      
      
      
      /*
        This is for closing a database connection
      */
         public boolean closedb(Connection connobj)
         {
              try
              {
                   connobj.close();
              }
              catch (SQLException ex)
              {
                   return true;
              }
      
              return true;
         }
      
      
      
      /*
      this is for finding a data in the index table for Report Class B
      */
         public String CheckCountofRecords(Connection conn)
         {
                 try
                 {
                      int data_flag=0;
                      String Noofrows="";
                      String sqlquery = "select count(*) from ALL_TABLES a, mlr.arsseg b , mlr.arsapp c where c.agid=b.agid and a.TABLE_NAME=b.TABLE_NAME";
                      Statement stmt = conn.createStatement();
                      System.out.println("2" );
                   ResultSet rset = stmt.executeQuery(sqlquery);
                   System.out.println("3" );
                   while (rset.next()) {
                   Noofrows=rset.getString(1);
                 }
                    rset.close();
                    stmt.close();
                    return Noofrows;
      
                 }
                 catch (SQLException ex)
                 {
      
                      System.out.println("CheckCountofRecords" +ex);
                      return "false";
                 }
      
         }
      
      
       public void  Application_DBmap_update(Connection conn,BufferedWriter out)
       {
            try
            {
                 int i=0;
                 String str,tablename="",Applicationame="",table_load_startdt="",table_load_stopdt="",table_load_closedt="";
                 String sqlquery = "select DISTINCT a.TABLE_NAME,c.NAME,b.start_date,b.stop_date,b.closed_date from ALL_TABLES a, mlr.arsseg b , mlr.arsapp c where c.agid=b.agid and a.TABLE_NAME=b.TABLE_NAME";
                 Statement stmt = conn.createStatement();
                 System.out.println("2" );
                 ResultSet rset = stmt.executeQuery(sqlquery);
                 System.out.println("3" );
                 while (rset.next()) {
                      i=i+1;
                      System.out.println(i+":");
                      tablename=rset.getString("TABLE_NAME");
                      Applicationame=rset.getString("NAME");
                      table_load_startdt=rset.getString("start_date");
                      table_load_stopdt=rset.getString("stop_date");
                      table_load_closedt=rset.getString("closed_date");
                      out.write(i+":"+tablename+","+Applicationame+","+table_load_startdt+","+table_load_stopdt+","+table_load_closedt+"\n");
                 }
               rset.close();
            }
            catch (IOException e)
            {
               System.out.println("i/o exception");
           }
           catch (SQLException ex)
            {
      
               System.out.println("CheckCountofRecords" +ex);
           }
       }
      
      
        public static void main(String arg[])
         {
             Application_DBmap obj= new Application_DBmap();
             Connection conn;
      
              String noofrecords="",dbcount="";
             try
             {
              BufferedReader in = new BufferedReader(new FileReader("dbapplicationmap.txt"));
              noofrecords=in.readLine();//read the number of tables from first line of i/p file
              if ((conn = obj.opendb()) == null)
                {
                     System.out.println("open db error\n");
                     return;
                }
              dbcount=obj.CheckCountofRecords(conn);
              if (noofrecords.equals(dbcount))
              {
                     System.out.println("Count Equal\n");
                }
                else
                {
                     System.out.println("Count Not Equal\n");
                     in.close();
                     BufferedWriter out = new BufferedWriter(new FileWriter("dbapplicationmap.txt"));
                     out.write(dbcount+"\n");
                     obj.Application_DBmap_update(conn,out);
                }
                System.out.println("file count ->"+noofrecords+"   "+"db count"+dbcount+"\n");
              obj.closedb(conn);
              in.close();
             }
             catch (IOException e)
             {
                   System.out.println("i/o exception");
             }
         }//class main end
      }// class Applcation_DBmap end