IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JDBC Java Discussion :

Requête insert et son exception


Sujet :

JDBC Java

  1. #1
    Membre régulier
    Homme Profil pro
    Doctorant
    Inscrit en
    Avril 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Orne (Basse Normandie)

    Informations professionnelles :
    Activité : Doctorant
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2012
    Messages : 7
    Par défaut Requête insert et son exception
    Bonjour,

    Je voudrais savoir comment éviter que ma requête Insert se termine toujours par une exception (Aucun résultat retourné par la requête).

    La requête tourne bien, sauf qu'elle se trouve dans une boucle, et quand le premier tuple est inséré l'exception est lancée donc ça sort de la boucle et le reste n'est pas inséré.

    Merci pour vos réponses

  2. #2
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    code?

  3. #3
    Membre régulier
    Homme Profil pro
    Doctorant
    Inscrit en
    Avril 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Orne (Basse Normandie)

    Informations professionnelles :
    Activité : Doctorant
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2012
    Messages : 7
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    public class Creator {
    	  private String url = "jdbc:postgresql://localhost:5433/";
    	  private String dbName = "Odeurcube";
    	  private String driverName = "org.postgresql.Driver";
    	  private String userName = "postgres";
    	  private String password = "cfp4108";
    	  private Connection con = null;
     
     
    	  public Creator() {
    		    try {
    		    	Class.forName(driverName).newInstance();
    	            con = DriverManager.getConnection(url+dbName, userName, password);
    	            System.out.println("Connexion établie");
    			} catch (Exception e) {
    				System.out.println("Erreur de conenxion: "+e.getMessage());
    			} 
    	  }
     
    	  public void createFactTable(){
     
    		  try {
    			  ResultSet rs=con.createStatement().executeQuery("select * from gridmeasure");
     
    			  while (rs.next()){
    				  System.out.println("Grille n° "+ rs.getString(1));
    				  ResultSet rs1=con.createStatement().executeQuery("select * from interpoints where grid="+rs.getString(1));
    				  System.out.println("Selection des points qui appartiennent à la grille " + rs.getString(1) +" --FAIT--");
    				  ResultSet rs2=con.createStatement().executeQuery("select id from time where date='"+rs.getString(2)+"'");
    				  System.out.println("Selection de l'id de la date de génération de la grille "+rs.getString(1)+" --FAIT--");
    				  rs2.next();
    				  while(rs1.next()){
    					  ResultSet rs3=con.createStatement().executeQuery("INSERT INTO \"factTable\" " +
    					  		"(\"idPoint\", \"idGrid\", \"idSource\", \"idtracer\", \"idTemps\", \"ValeurConcentration\") values (" +
    					  		rs1.getString(1)+","+rs.getString(1)+","+rs.getString(10)+","+rs.getString(11)+","+rs2.getString(1)+","+rs1.getString(4)+
    					  		");");
    					  System.out.println(rs1.getString(1)+","+rs.getString(1)+","+rs.getString(10)+","+rs.getString(11)+","+rs2.getString(1)+","+rs1.getString(4));
    				  }
     
    			  }
    		} catch (Exception e) {
    			System.out.println("Erreur de création: "+e.getMessage());
    		}
     
    	  }
    }
    Voila...

  4. #4
    Membre régulier
    Homme Profil pro
    Doctorant
    Inscrit en
    Avril 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Orne (Basse Normandie)

    Informations professionnelles :
    Activité : Doctorant
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2012
    Messages : 7
    Par défaut
    C'est bon j'ai trouvé. Il fallait juste mettre le "try catch" sur le rs3 au milieux de la boucle.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    while(rs1.next()){
    					try{
    					  ResultSet rs3=con.createStatement().executeQuery("INSERT INTO \"factTable\" " +
    					  		"(\"idPoint\", \"idGrid\", \"idSource\", \"idtracer\", \"idTemps\", \"ValeurConcentration\") values (" +
    					  		rs1.getString(1)+","+rs.getString(1)+","+rs.getString(10)+","+rs.getString(11)+","+rs2.getString(1)+","+rs1.getString(4)+");");
    
    					} catch (Exception e) {
    					System.out.println("Erreur de création: "+e.getMessage());
    					}  		
    					  System.out.println(rs1.getString(1)+","+rs.getString(1)+","+rs.getString(10)+","+rs.getString(11)+","+rs2.getString(1)+","+rs1.getString(4));
    				  }

  5. #5
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    il faut utilise executeUpdate pour les mises à jour.

    Aussi, utilise des preparedStatement. Avec ce code, ce sera la cata si t'as des guillement dans certaines données.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [VBA] difficultés avec une requête INSERT
    Par elias dans le forum Access
    Réponses: 7
    Dernier message: 06/09/2005, 15h53
  2. requête insert
    Par mattoo dans le forum Langage SQL
    Réponses: 10
    Dernier message: 20/04/2005, 15h09
  3. Réponses: 4
    Dernier message: 05/04/2005, 19h28
  4. probleme requête insert.... where
    Par Amandine62 dans le forum Langage SQL
    Réponses: 7
    Dernier message: 21/02/2005, 15h26
  5. Problème sur une requête INSERT
    Par Marion dans le forum Langage SQL
    Réponses: 3
    Dernier message: 17/06/2003, 09h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo