Programmation Java lecture base de données

Programmation Java lecture base de données - Java - Programmation

Marsh Posté le 15-12-2013 à 23:51:55    

Bonsoir les gars, je ne sais pas si quelqu'un peut m'aider mais j'ai un problème en JAVA.
En fait je dois lire dans une base de données puis modifier un fichier .txt à partir de ce que j'ai lu avec des paramètres bien particuliers.
Ce que je fais c'est que je lis simultanément ma base de données et mon fichier .txt à modifier puis je le modifier après lecture.
Toutefois cela ne marche pas, Java ne semble pas aimer cette simultanéité.
Quelqu'un aurait une autre idée?  :jap:  
 

Spoiler :


public class Ecrire {
 public static void main(String[] args) {
  Connection con = null;
        Statement st = null;
        ResultSet rs = null;
        String url = "***";
        String user = "***";
        String password = "****";
 
     String paramPath = "../position.txt";
  String outPath = "../nodenew.txt";
  try {
   // LECTURE de la base de données
       con = DriverManager.getConnection(url, user, password);
             st = con.createStatement();
             String sql;
             sql="SELECT device FROM devices";
             rs = st.executeQuery(sql);
   
   BufferedReader param = new BufferedReader(new FileReader(paramPath));
   BufferedWriter out = new BufferedWriter(new FileWriter(outPath));
 
   try {
     
    String line2;
 
    while (rs.next()==true &&  (line2 = param.readLine()) != null) {
     
     int device = rs.getInt("device" );
     String abc = "\nNODE " + device + "\nTEMPLATE switch \nPOSITION  " + line2 +"\nLABEL "+device +"\n";
     try {
      System.out.println(abc);
      out.write(abc);
     } catch (FileNotFoundException e) {
      e.printStackTrace();
     } catch (IOException e) {
      e.printStackTrace();
     }
    }
    rs.close();
         st.close();
         con.close();
   } catch(SQLException se){
         //Handle errors for JDBC
         se.printStackTrace();
      }catch(Exception e){
         //Handle errors for Class.forName
         e.printStackTrace();
      }finally{  
       out.close();
         //finally block used to close resources
         try{
            if(st!=null)
               st.close();
         }catch(SQLException se2){
         }// nothing we can do
         try{
            if(con!=null)
               con.close();
         }catch(SQLException se){
            se.printStackTrace();
         }
      }
     
   
   
  } catch (IOException ioe) {
   System.out.println("Erreur ---" + ioe.toString());
  }
 }
}

Message cité 1 fois
Message édité par lostfingers le 16-12-2013 à 00:25:26
Reply

Marsh Posté le 15-12-2013 à 23:51:55   

Reply

Marsh Posté le 16-12-2013 à 20:23:29    

lostfingers a écrit :

Toutefois cela ne marche pas, Java ne semble pas aimer cette simultanéité.


T'as un message d'erreur qui te dit "CannotHandleOneDBAndOneFileAtTheSameTimeException"? J'en doute...
Donc question habituelle: ca veut dire quoi "ca ne marche pas", t'as un message d'erreur, il dit quoi, si t'as pas d'erreur il se passe quoi, etc.
Sans ca, difficile de deviner.
Au doigt mouille, tu utilises un buffer que tu ne flushes pas avant le close() donc ya une chance que ca soit ton probleme.


Message édité par lasnoufle le 16-12-2013 à 20:24:08

---------------
C'était vraiment très intéressant.
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed