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 :

Probleme d'insertion dans une base oracle


Sujet :

JDBC Java

  1. #1
    Membre du Club
    Inscrit en
    Mai 2008
    Messages
    112
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 112
    Points : 42
    Points
    42
    Par défaut Probleme d'insertion dans une base oracle
    Salut tout le monde,
    J'ai developpé une classe ConnexionBD pour etablir la connexion avec une base de donnée oracle:
    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
     
    package data.view;
     
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
     
    public class ConnexionBD {
     
        public   Statement stmt=null; 
        public ResultSet curJava;
     
     
     
        public boolean connect(String base,String nom,String motpasse)
        {
             try 
             {
                 DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());//Chargement d'un pilote JDBC Oracle
                 Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:BD1", "base","base");//Création d'une connexion
                 stmt = conn.createStatement();//Creation d'un etat de connexion objet destinee a  recevoir un ordre SQL
     
                 return(true);
             } 
             catch (SQLException ex) 
             {
                 return(false);
             }   
        }
    }
    La connexion est bien établie mais j'ai un probleme d'insertion dans la base.Des que j'essay d'executer la requete d'insertion,mon programme se plante.Il m'affiche le message "connexion établie" puis il ne fait plus rien.Lorsque je supprime la requete" rt.stmt.executeUpdate(requet1)" le programme marche normalement.
    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
     
     
           try{
              if(rt.connect("BD1","base","base")){
              System.out.println("connexion établie:niveau module");
               String requet1="insert into Form values('"+col1+"',"+"'"+col2+"','" +col3+"','"+col4+"','"+col5+"')"; 
          //System.out.println(requet1);
              rt.stmt.executeUpdate(requet1);
              }
              else
              System.out.println("Echec Connexion");}
              catch (SQLException f) {
               if (f instanceof SQLException){
                 System.out.println("SQL Message Code is: " + f.getMessage());
                 System.out.println("SQL State is: " + ((SQLException)f).getSQLState());
                  }
                  }
                  System.out.println("Insert failed. " + ((SQLException)f).getMessage());
                     return;
              }
    Avez vous une idée de la provenace du probleme???
    Merci d'avance

  2. #2
    Membre actif Avatar de aymen83
    Inscrit en
    Décembre 2007
    Messages
    271
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 271
    Points : 268
    Points
    268
    Par défaut
    je croie que l'erreur vient du fait que tu met le createStatement dans le catch. Essai de le faire après

  3. #3
    Membre du Club
    Inscrit en
    Mai 2008
    Messages
    112
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 112
    Points : 42
    Points
    42
    Par défaut
    si j'ai bien compri je doi mettre le createStatement dans le catch????paske actuellement il est dans le bloc try.

  4. #4
    Membre actif Avatar de aymen83
    Inscrit en
    Décembre 2007
    Messages
    271
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 271
    Points : 268
    Points
    268
    Par défaut
    non après le try catch

  5. #5
    Membre du Club
    Inscrit en
    Mai 2008
    Messages
    112
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 112
    Points : 42
    Points
    42
    Par défaut
    svp explique moi g pas vraiment compri ske je doi faire.
    Merci d'avance

  6. #6
    Membre actif Avatar de aymen83
    Inscrit en
    Décembre 2007
    Messages
    271
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 271
    Points : 268
    Points
    268
    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
     
    package data.view;
     
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
     
    public class ConnexionBD {
     
        public   Statement stmt=null; 
        public ResultSet curJava;
     
     
     
        public boolean connect(String base,String nom,String motpasse)
        {
             try 
             {
                 DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());//Chargement d'un pilote JDBC Oracle
                 Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:BD1", "base","base");//Création d'une connexion
     
                 return(true);
             } 
             catch (SQLException ex) 
             {
                 return(false);
             }   
        }
     
    // c'est seulement un exemple de mon point vue, tu avoir une meilleurs idée
    if(connect()){
    stmt = conn.createStatement();//Creation d'un etat de connexion objet destinee a  recevoir un ordre SQL
    curJava = stmt.executeQuery("ta requête");
    while(curJava.next()){
    ......
    }
    }
     
    }
    j'éspère que c'est un peu plus claire

  7. #7
    Membre averti
    Inscrit en
    Octobre 2007
    Messages
    311
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 311
    Points : 318
    Points
    318
    Par défaut
    Je pense qu'il faut tout mettre dans le try/catch (ou dispatcher dans plusieurs) car le createStatement, le executeQuery et le rs.next doivent lever une SQLException j'imagine...

    Et un finally qui ferme les différents objets peut s'avérer une bonne idée aussi...

    Tout comme éviter le langage SMS du genre "svp explique moi g pas vraiment compri ske je doi faire"....

  8. #8
    Membre averti
    Inscrit en
    Octobre 2007
    Messages
    311
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 311
    Points : 318
    Points
    318
    Par défaut
    Citation Envoyé par aymen83 Voir le message
    je croie que l'erreur vient du fait que tu met le createStatement dans le catch. Essai de le faire après
    Et là, je vois pas ce que tu veux dire non plus...



    Citation Envoyé par FstDsi Voir le message
    Salut tout le monde,
    Avez vous une idée de la provenace du probleme???
    Merci d'avance
    Qu'entends-tu par "ça ne fait plus rien" ??? Es-tu sûr que l'insert ne fait rien ? Récupère le retour de ton executeUpdate dans une variable int et affiche-la. Soit tu as une exception et elle doit apparaitre vu que tu la gères dans ton catch, soit ton insert retourne "0" et alors en effet l'insert s'est mal passé, soit il affiche "1" et alors ton enregistrement a bien été créé.

Discussions similaires

  1. [Débutant] probleme d'insertion dans une base de donnée
    Par safailizabet dans le forum VB.NET
    Réponses: 12
    Dernier message: 21/03/2012, 10h30
  2. Insertion dans une base Oracle
    Par saadtv4004 dans le forum Oracle
    Réponses: 6
    Dernier message: 19/05/2011, 16h46
  3. Probleme d'insertion dans une base de donnée
    Par jubourbon dans le forum Windows Forms
    Réponses: 1
    Dernier message: 05/06/2009, 10h35
  4. probleme d'insertion dans une base sql server
    Par brajae85 dans le forum ASP.NET
    Réponses: 18
    Dernier message: 17/09/2008, 23h09
  5. Insertion des fichiers pdf dans une base oracle
    Par arezki76 dans le forum SQL
    Réponses: 2
    Dernier message: 20/07/2007, 16h39

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