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 :

JDBC Oracle débutant


Sujet :

JDBC Java

  1. #1
    Membre régulier Avatar de Michel38
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2005
    Messages : 221
    Points : 114
    Points
    114
    Par défaut JDBC Oracle débutant
    Bonjour à tous,

    Je travaille sous éclipse, et j'essaie de faire mes premières requêtes SQL depuis Java.
    Mon programme est tout con :
    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
            ResultSet résultats = null;
            String requete = "SELECT * FROM emp";
     
            try 
            {
                Statement stmt = conn.createStatement();
                résultats = stmt.executeQuery(requete);
            } catch (SQLException e) {
                // Anomalie lors de l'exécution de la requête
            }
     
            try 
            {
                ResultSetMetaData rsmd = résultats.getMetaData();
                int nbCols = rsmd.getColumnCount();
     
                System.out.print("Avant While. Il y a " + nbCols + " colonnnes");
     
                while (résultats.next()) 
                {
                    System.out.print(résultats.getString(1));
                    for (int i = 1; i <= nbCols; i++)
                        System.out.print(résultats.getString(i) + " ");
                    System.out.println();
     
                }
                résultats.close();
            } catch (SQLException e) {
     
                e.printStackTrace();
            }
    Et la sortie console :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Avant While. Il y a 7 colonnnes
    J'ai vérifié plein de choses. La base de données existe, la table Emp existe, il y a des données dedans.
    Le programme arrive bien à compter le nombre de colonnes de la table. Le résultat est juste, j'ai bien 7 colonnes.
    Mais au moment de faire le next(), il sort.. Il ne rentre jamais dans le while.
    J'ai fais plusieurs essais, c'est pour ça qu'il y a un peu n'importe quoi dans le while.
    J'imagine que ce n'est vraiment pas grand chose, surtout quand on voit la taille du code !!

    Si quelqu'un a une idée, une solution ou une direction à suivre...
    J'en serais éternellement reconnaissant...

    Merci

    Michel

  2. #2
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Points : 9 529
    Points
    9 529
    Billets dans le blog
    1
    Par défaut
    Par convention, on ne met pas d'accent dans les noms de variables, même si ça fonctionne, c'est juste une convention.

    Sinon, je ne vois rien d'anormal dans ton code, il y a juste une chose que je vois qui pourrait faire que tu n'as pas de résultat à ta requête, c'est que tu ais une table "emp" dans plusieurs schéma et que par défaut tu pointes sur le schéma dont la table est vide...
    Il est préférable de préciser le schéma utilisé pour les requêtes sql (à moins de préciser le schéma dans l'url de connexion et de vouloir utiliser le même code dans différents environnements).
    Il suffit de le préciser devant le nom de table
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select * from schéma.table
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre régulier Avatar de Michel38
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2005
    Messages : 221
    Points : 114
    Points
    114
    Par défaut
    Merci pour ta réponse rapide.
    J'ai renommé ma variable en enlevant l'accent.
    J'ai indiqué le nom du schéma avant le nom de la table.
    Et au final, aucun changement.
    Je n'ai toujours rien qui s'affiche, Un peu comme s'il n'y avait pas de données dans ma table en fait... et pourtant j'ai bel et bien 30 enregistrements dans la table.

    Gros mystère..
    Si encore il y avait un message d'erreur, ça me donnerait des pistes, mais non... aucun message.

  4. #4
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Points : 9 529
    Points
    9 529
    Billets dans le blog
    1
    Par défaut
    Et bien, de mon point de vue, je pense qu'il n'y a pas de données dans la table que tu lis... mais d'où vient l'erreur d'aiguillage... aucune idée

    Peux-tu montrer le code de récupération de la connexion ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre régulier Avatar de Michel38
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2005
    Messages : 221
    Points : 114
    Points
    114
    Par défaut
    Et pourtant, il y a bien des données.

    Voici 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
     
    private final static String JDBC_DRIVER = "oracle.jdbc.driver.OracleDriver";
        private final static String JDBC_URL = "jdbc:oracle:thin:@localhost:1522:XE";
        private static Connection conn = null;
        private SimpleDateFormat dateFormat = null;
     
        public TpJdbc() {
            dateFormat = new SimpleDateFormat("dd/MM/yyyy HH:mm", Locale.FRANCE);
        }
     
        public void initConnection(String login, String password) throws SQLException {
            try {
                Class.forName(JDBC_DRIVER);
                conn = DriverManager.getConnection(JDBC_URL, login, password);
            } catch (ClassNotFoundException e) {
                throw new SQLException("Impossible de trouver le driver JDBC : " + e.getMessage());
            }
        }
    et dans le main :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    TpJdbc myTp = new TpJdbc();
            try {
                myTp.initConnection("Login", "motdepasse");
                myTp.doTheJob();
            } catch (SQLException e) {
                e.printStackTrace();
            } finally {
                myTp.closeConnection();
            }

  6. #6
    Membre régulier Avatar de Michel38
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2005
    Messages : 221
    Points : 114
    Points
    114
    Par défaut
    Il n'y a vraiment aucune raisons que ça ne marche pas.
    Mais malgré tout, j'ai essayé avec une autre table qui fait partie de ma base de données.
    Et là ça marche impeccablement..
    Va comprendre !!!

    Merci en tout cas d'avoir pris le temps de me répondre.

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

Discussions similaires

  1. [débutante]jdbc oracle 10g
    Par newmar dans le forum JDBC
    Réponses: 2
    Dernier message: 27/03/2008, 15h53
  2. Réponses: 9
    Dernier message: 07/07/2005, 12h46
  3. [jdbc][oracle] conversion implicite erronée
    Par Jack Huser dans le forum JDBC
    Réponses: 2
    Dernier message: 30/06/2005, 10h23
  4. [JDBC] [ORACLE] Récupérer Id auto-inséré ???
    Par Bobsinglar dans le forum JDBC
    Réponses: 4
    Dernier message: 30/05/2005, 16h13
  5. [JDBC] [Oracle] Erreur : End of TNS data channel
    Par loicmillion dans le forum JDBC
    Réponses: 2
    Dernier message: 01/02/2005, 14h27

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