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 :

Problème JAVA JDBC


Sujet :

JDBC Java

  1. #1
    Candidat au Club
    Inscrit en
    Février 2010
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 3
    Points : 2
    Points
    2
    Par défaut Problème JAVA JDBC
    Bonjour,

    Je viens de commencer l'apprentissage de JAVA, et j'ai un problème que je n'arrive pas à détecter la cause !
    Mon programme se compose de trois classes : Etudiant, MaConnexion et Main comme suit :


    ****************************La classe Etudiant **********************************
    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
     
    package cas2;
     
    import java.beans.Statement;
    import java.sql.*;
     
     
     
     
     
    class Etudiant{
     
    MaConnexion con=new MaConnexion();
    int code;
    String nom;
    String prenom;
    public Etudiant(int code,String nom,String prenom){
    this.code=code;
    this.nom=nom;
    this.prenom=prenom;
    }
     
    public void Insert(){
     
    con.open();
    con.St();
    int NbLns=S.executeUpdate("insert into infoetudiant value ("+this.code+",'"+this.nom+"',"+this.prenom+"')");
    System.out.println(NbLns+" Ligne(s) insérée(s)");
    con.Close();
     
    }
     
     
    }
    ************************* La classe MaConnexion ************************************
    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
     
    package cas2;
     
    import java.sql.*;
    import java.sql.DriverManager;
    import java.sql.SQLException;
     
     
     
    public class MaConnexion {
     
     
    Connection con=null;
    Statement S=null;
     
    public Connection open() throws ClassNotFoundException, SQLException{
     
    String url = "jdbc:odbc:bdetudiant";
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    con=DriverManager.getConnection(url,"","");
    return con;
    }
     
    public void St() throws SQLException
    {
    S=con.createStatement();
    }
     
     
    public void Close() throws SQLException{
    con.close();
     
    }
    }
    ****************************** La classe Main ***********************************
    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
     
    package cas2;
     
    public class Main {
     
     
    public static void main(String arg[])
    {
     
    Etudiant etu=new Etudiant(1994,"ali","karim");
    ahmed.Insert();
     
     
    }
     
    }
    ****************************************************************************
    ****************************************************************************

    Je vous prie de bien vouloir m'aider à identifier l'erreur que j'ai commise, et de me proposer une solution.

    Merci les amis !

  2. #2
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2008
    Messages
    380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Octobre 2008
    Messages : 380
    Points : 480
    Points
    480
    Par défaut
    Bonjour,

    Tout d'abord tu devrais utiliser la balise "code" du forum pour que le code source soit correctement présenté.

    De plus, il faudrait que tu détailles un peu l'erreur que tu as avec ton code.

    Je pense que le code ne compile pas, en effet, tu utilises une variable "S", jamais déclarée/instanciée:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    int NbLns=S.executeUpdate("insert into infoetudiant value ("+this.code+",'"+this.nom+"',"+this.prenom+"')");
    Dans l'ensemble, toutes les précisions que tu pourras apporter à ton problème, permettrons aux différentes personnes de d'aider plus facilement.

    a+

  3. #3
    Candidat au Club
    Inscrit en
    Février 2010
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    J'ai appliqué les modifications que vous m'aviez suggérer.


    Citation Envoyé par eric39 Voir le message
    Bonjour,

    Tout d'abord tu devrais utiliser la balise "code" du forum pour que le code source soit correctement présenté.

    De plus, il faudrait que tu détailles un peu l'erreur que tu as avec ton code.

    Je pense que le code ne compile pas, en effet, tu utilises une variable "S", jamais déclarée/instanciée:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    int NbLns=S.executeUpdate("insert into infoetudiant value ("+this.code+",'"+this.nom+"',"+this.prenom+"')");
    Dans l'ensemble, toutes les précisions que tu pourras apporter à ton problème, permettrons aux différentes personnes de d'aider plus facilement.

    a+

  4. #4
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2008
    Messages
    380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Octobre 2008
    Messages : 380
    Points : 480
    Points
    480
    Par défaut
    OK,
    Donc, la variable '"S" qui est utilisée ici:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    int NbLns=S.executeUpdate("insert into infoetudiant value ("+this.code+",'"+this.nom+"',"+this.prenom+"')");
    n'existe pas dans la classe Etudiant, elle provient de la classe MaConnexion.
    Il faut donc soit faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    int NbLns= con.S.executeUpdate("insert into infoetudiant value ("+this.code+",'"+this.nom+"',"+this.prenom+"')");
    soit (et c'est mieux à mon avis):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    int NbLns= con.executeUpdate("insert into infoetudiant value ("+this.code+",'"+this.nom+"',"+this.prenom+"')");
    en ajoutant une méthode à la classe MaConnexion:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    public int executeUpdate(String sql) throws SQLException {
    	return S.executeUpdate(sql);
    }
    De plus, il faudra gérer les exceptions dans la classe Etudiant.

    En espérant avoir pu t'aider.

Discussions similaires

  1. Problème Java/MySql : "Unknown database"
    Par darkflo dans le forum JDBC
    Réponses: 3
    Dernier message: 24/03/2006, 11h34
  2. problème java run time environment
    Par abrmed dans le forum Autres Logiciels
    Réponses: 7
    Dernier message: 19/08/2005, 13h27
  3. [java/jdbc]SIMPLE REQUETE SQL: expression abssente
    Par b_52globemaster dans le forum JDBC
    Réponses: 6
    Dernier message: 16/08/2005, 11h38
  4. Réponses: 1
    Dernier message: 05/07/2005, 10h47
  5. [JAVA/JDBC]pb executeQuery()
    Par david06600 dans le forum JDBC
    Réponses: 4
    Dernier message: 04/07/2005, 16h10

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