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 :

Oracle11g Eclipse Europa


Sujet :

JDBC Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Avril 2009
    Messages : 29
    Points : 21
    Points
    21
    Par défaut Oracle11g Eclipse Europa
    Bonjour à tous, je suis nouveau sur le site mais je l'ai déjà parcouru un peu...Je suis étudiant et tres nouveau également dans la programmation en Java...J'aimerais connaitre la synthaxe qui me permettrait de faire des Insert Into dans Oracle depuis Eclipse.J'ai bien essayer differentes choses mais c'est toujours souligné en rouge...Quelles classes dois je creer? quel est le contexte qui me permettrait de renseigner mes tables depuis Eclipse...Merci d'avance HELP Depuis mon IHM swing l'avait pas pris tout en compte le bignou...

  2. #2
    Membre habitué Avatar de cashmoney
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 298
    Points : 149
    Points
    149
    Par défaut
    Bonjour, concernant la syntaxe sur insertion oracle, je te donne une requête standard mais que tu pourras adapter selon tes champs dans ta table.
    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
     
    public void ajouter() {
    Connection connect = null;<------- connection à la base déjà configurer
    ...
    try {
    connect = connection_baseOracle();<---- methode créer au préalable
    String requête = "insert into NOM_TABLE (ID, champs1, champs2, champs3, ...) values (sequencedelatable.nextval, ?, ?, ?, ..");
    PreparedStatement prstm = connect.preparedstatement(requête, new String[]{"ID"});
    prstm.setString(champs1);<--- si champs1 String
    prstm.setInt(champs2);<---- si champs2 int
    prstm.setDouble(champs3);<--- si champs3 float dans ta base
    ...
    prstm.executeUpdate();
    connect.commit();
    prstm.close();
    }
    catch(SQLException e) {
    e.printStackTrace();
    }
    finally {
    if (connect!=null)
     connect.close();
    }
     
    }
    Attention : utilisation de sequencedelatable.nextval si tu utilises une autoincrémentation dans sur l'ID de ta table, il faut bien entendu désactiver le trigger qui va avec afin de ne pas incrémenter de 2 en 2.

    Voilà, j'espères que celà pourras t'aider, si tu as des questions vas y lance toi.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Avril 2009
    Messages : 29
    Points : 21
    Points
    21
    Par défaut Parametres non reconnus
    Merci beaucoup cela m'aide bien...Toutefois, petit souci avec ma synthaxe; Je vous montre mon code :

    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
    try {Connection conn=null;
    				Statement stmt = conn.createStatement();
    				conn.setAutoCommit(false);
     
    				stmt.executeUpdate(	"INSERT INTO PARCMACHINE.COMPOSANT VALUES (ID,'MAR_COM','TYP_COM') ;");
    				stmt.executeUpdate("INSERT INTO PARCMACHINE.PARC VALUES (PAR_ID,'PAR_NOM','PAR_TYP');");
    				PreparedStatement prstm = conn.prepareStatement("INSERT INTO PARCMACHINE.COMPOSANT VALUES (ID,'MAR_COM','TYP_COM') ;");
    				prstm.setInt (ID);
    				prstm.setString(MAR_COM);
    				prstm.setString(TYP_COM);
     
    				prstm.executeUpdate();
     
     
     
    				conn.commit();
    				stmt.close();
    				conn.close();
     
    				finally {
    					if (conn!=null)
    					 conn.close();
    					}

    M'indique que prstm.setInt (ID);
    prstm.setString(MAR_COM);
    prstm.setString(TYP_COM);

    ID MAR_COM ET TYP_COM NE PEUVENT ETRE RESOLUS???

  4. #4
    Membre habitué Avatar de cashmoney
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 298
    Points : 149
    Points
    149
    Par défaut
    utilise les balises codes( le # ) pour mettre des codes java, ainsi ce sera plus clair, là tout est en rvac on arrive pas lire ton code.
    Merci.

    Je te reponds quand même en disant que si tu utilises des clés étrangères d'une autre table qui sont référencées dans la table dans laquelle tu veux insérer. tu seras obligé tout d'abords de faire des insertions dans les tables indiquées, récupérer les clés (avec un ReseltSet après insertion) et ensuite les passer en paramètre pour faire ton insertion dans la table où elles sont comme clés étrangères.

  5. #5
    Rédacteur
    Avatar de CyberChouan
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    2 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 752
    Points : 4 314
    Points
    4 314
    Par défaut
    Normal : tu n'as pas compris le fonctionnement des PreparedStatement.

    Chaque pstmt.setVar doit être associé à un caractère '?' dans ta requête. Or, il n'y en a aucun dans ton code...

    De plus, les méthodes "setString" attendent des chaînes de caractère en paramètre... Tu passes des identifiants de variables (non entourés de guillemets) non déclarés préalablement

    Je te conseille vivement d'aller voir la (l'utilisation des connexions SQL y est décrite) et les cours : http://java.developpez.com/cours/

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Avril 2009
    Messages : 29
    Points : 21
    Points
    21
    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
     
    try {Connection conn=null;
    Statement stmt = conn.createStatement();
    conn.setAutoCommit(false);
     
    stmt.executeUpdate( "INSERT INTO PARCMACHINE.COMPOSANT VALUES (ID,'MAR_COM','TYP_COM') ;");
    stmt.executeUpdate("INSERT INTO PARCMACHINE.PARC VALUES (PAR_ID,'PAR_NOM','PAR_TYP');");
    PreparedStatement prstm = conn.prepareStatement("INSERT INTO PARCMACHINE.COMPOSANT VALUES (ID,'MAR_COM','TYP_COM') ;");
    prstm.setInt (ID);
    prstm.setString(MAR_COM);
    prstm.setString(TYP_COM);
     
    prstm.executeUpdate();
     
     
     
    conn.commit();
    stmt.close();
    conn.close();
     
    finally {
    if (conn!=null)
    conn.close();
    }

  7. #7
    Membre habitué Avatar de cashmoney
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 298
    Points : 149
    Points
    149
    Par défaut
    Je t'expliques calmement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    ...
    si ton ID est un int
    prstm.setInt (ID);<------ l'ID doit être connu au préalable ou mis en paramètre.
     
    si MAR_COM fait reférence à un String alors, 
    récupères le String qui y fait référence soit en le passant en paramètre soit en faisant un getMar() afin de l'obtenir
    prstm.setString(paramètre ou getMar() );<----------paramètre String ou getMar() qui est un String
    ....

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Avril 2009
    Messages : 29
    Points : 21
    Points
    21
    Par défaut Résolu
    Merci beaucoup pour vos réponses...Dur dur Java pour un premier langage de programmation...

Discussions similaires

  1. Eclipse Europa & exadel
    Par Mayazi dans le forum Eclipse
    Réponses: 1
    Dernier message: 29/08/2007, 19h19
  2. [Qt4.1.0,eclipse europa cdt,mac]une librairie reconnue, pas l'autre
    Par olivier57b dans le forum Eclipse C & C++
    Réponses: 1
    Dernier message: 05/08/2007, 13h51
  3. [eclipse europa, CDT]pas de complétion avec (ou sans) Qt
    Par olivier57b dans le forum Eclipse C & C++
    Réponses: 1
    Dernier message: 03/08/2007, 20h17
  4. Problème de mise à jour eclipse-europa
    Par chevy dans le forum Eclipse Java
    Réponses: 4
    Dernier message: 06/07/2007, 17h56

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