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 :

NetBeans ne m'affiche pas le contenu de ma table : problème ODBC


Sujet :

JDBC Java

  1. #81
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 710
    Points : 4 794
    Points
    4 794
    Par défaut
    Citation Envoyé par Spiicky Voir le message
    Solution apporté : format modifié en varchar, je verrais après s'il les opérations de type ORDER BY sont effectué via l'application ou via la BDD.
    Au pire, on interviendra à posteriori
    En principe, si dans Access c'était un vrai champ date, cela ne va pas fonctionner car Jdbc ne va pas apprécier d'avoir un champ texte
    alors qu'il s'attend à avoir une date.
    Et il est bien clair que la recherche sur date ne fonctionne pas avec ce format !!! (sauf s'il est en yyy-mm-dd)
    Je pense qu'il faut que tu fasses la conversion avant toute autre chose pour éliminer une des causes du tsunami dont tu parles plus bas.

    Je ferai comme cela pour une table qui comporte un champ date avec des dates dd/mm/yyyy :
    1) Je crée un nouveau champ de type datetime
    2) avec une requête SQL et la fonction de conversion tu rempli le nouveau champ
    genre : UPDATE matable SET monnouveauchampdatetime = STR_TO_Date(monchampdate, '%d/%m/%Y')
    3) après vérification de la bonne conversion, tu supprimes monchampdate
    4) tu renome le champ monnouveauchampdatetime en monchampdate (qui est le nom attendu par l'application)
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

  2. #82
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2015
    Messages
    340
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2015
    Messages : 340
    Points : 31
    Points
    31
    Par défaut
    Ok Népomucène, je vais m'y attelé dès que possible !

    merci pour ce tips

  3. #83
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2015
    Messages
    340
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2015
    Messages : 340
    Points : 31
    Points
    31
    Par défaut
    Me revoilà !

    Alors, pour information, j'ai installé un server MySQL sur un poste ainsi que WorkBench que je découvre au passage (super outil !)
    Sur un autre poste, j'ai mon projet ouvert via NetBeans.

    La connexion s'effectue correctement et j'arrive à récupérer des données du server.

    Cependant, je recontre un petit soucis, voici la ligne d'erreur fournie par NetBean's :
    Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    Une idée ?

  4. #84
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 710
    Points : 4 794
    Points
    4 794
    Par défaut
    Citation Envoyé par Spiicky Voir le message
    Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    Une idée ?
    Eh non, pas d'idée si on n'a pas le code !!!
    C'est l'en-tête standard d'un message d'erreur sous Java donc ...

    Bref, on poste le code et on poste la stacktrace d'erreur
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

  5. #85
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2015
    Messages
    340
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2015
    Messages : 340
    Points : 31
    Points
    31
    Par défaut
    mea culpa

    Alors voici l'erreur plus précisément :
    Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    at coactivite2.Zone.AffichageZone(Zone.java:179)

    Accompagné de la ligne concernée (179)
    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
    public static void AffichageZone(JTable table)
        {
            try
            {
                DefaultTableModel modele = (DefaultTableModel) table.getModel();
                Vector<Vector<String>> data = null;
                Connexion.query = "SELECT NomZone, NomInstallation FROM zone, Installation WHERE installation.IdInstallation = zone.IdInstallation GROUP BY NomInstallation, NomZone;";
                Connexion.res = Connexion.stmt.executeQuery(Connexion.query);
                int i = 0;
                Utilitaire.centrerTable(table);
                while(Connexion.res.next())
                {
                    modele.addRow(data);
                    table.setValueAt(Connexion.res.getString(1),i,0);
                    table.setValueAt(Connexion.res.getString(2),i,1);
                    i++;
                }
            }
            catch(SQLException ex)
            {
                System.out.println(ex.getMessage());
            }
        }
    Je viens de vérifié la validité de la requête dans la BDD directement et cela fonctionne parfaitement.

    J'émet un doute sur le mot "Connexion"...

    nb : un petit warning pour (je ne sais pas si c'est très important) :
    Tue Oct 04 09:40:53 CEST 2016 WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.

  6. #86
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 710
    Points : 4 794
    Points
    4 794
    Par défaut
    Connexion est écrit "à la française" avec un "x" donc ce n'est pas l'objet connection de Jdbc
    mais une classe ad hoc pour gérer les connexions et les statements ... mais pas forcément bien fait à l'évidence.

    Je suppose que Connexion.stmt représente un objet Statement mais qui semble être null.
    Il faut vérifier son initialisation.
    En plus on est dans une méthode statique qui peut être appelée plusieurs fois
    et elle peut elle-même appeler Connexion plusieurs fois sans garantie de bonne fermeture des objets.

    C'est pas un cadeau ce qu'on t'a donné là !

    Pour l'avertissement MySql, ignore-le pour l'instant ; il y a plus urgent à faire.
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

  7. #87
    Membre actif
    Homme Profil pro
    Architecte technique
    Inscrit en
    Août 2006
    Messages
    178
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 178
    Points : 274
    Points
    274
    Par défaut
    C'est clair que cette classe Connexion doit être sujette à une très grande prudence car il faut bien nettoyer derrière soi en JDBC.
    Si elle est statique j'espère que tu es sûr de ne pas avoir d'accès concurrentiels sinon tu vas au dela de bugs pénibles.

  8. #88
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2015
    Messages
    340
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2015
    Messages : 340
    Points : 31
    Points
    31
    Par défaut
    D'accord, si je comprend bien, je dois mettre un point d'arrêt sur le statement afin de vérifié sa valeur ?

  9. #89
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 710
    Points : 4 794
    Points
    4 794
    Par défaut
    Oui, en utilisant le débogueur tu devrais voir où ça coince.
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

  10. #90
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2015
    Messages
    340
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2015
    Messages : 340
    Points : 31
    Points
    31
    Par défaut
    J'avoues avoir un peu de mal à l'utiliser

    J'ai cette instruction dans ma fonction Connexion :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
    Comment pourrais faire pour suivre l'application accompagnée de la valeur de ses variables depuis le début ?

  11. #91
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 710
    Points : 4 794
    Points
    4 794
    Par défaut
    Tu mets un point d'arrêt dessus (on a vu comment faire plus haut je crois)
    Et tu lances ton application en débug.
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

  12. #92
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2015
    Messages
    340
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2015
    Messages : 340
    Points : 31
    Points
    31
    Par défaut
    Je ne sais pas si c'est ce dont nous avons besoin

    Nom : Sans titre.jpg
Affichages : 191
Taille : 365,5 Ko

  13. #93
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 710
    Points : 4 794
    Points
    4 794
    Par défaut
    C'est plutôt dans la classe Connexion qu'il faudrait mettre un point d'arrêt sur :
    Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

  14. #94
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2015
    Messages
    340
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2015
    Messages : 340
    Points : 31
    Points
    31
    Par défaut
    Il veut que je le renomme, je ne comprend pas car si je le fais, de l'autre coté on ne reconnait plus stmt

    Nom : Sans titre.jpg
Affichages : 177
Taille : 187,1 Ko

  15. #95
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 710
    Points : 4 794
    Points
    4 794
    Par défaut
    Ah la daube !

    stmt a été déclaré comme variable de classe
    et au milieu d'une méthode il est à nouveau déclaré en local ce qui écrabouille la variable de classe !

    à la ligne 71 il faut supprimer "Statement" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
          stmt = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
    Méfie-toi de cette classe qui a été laborieusement bricolée
    (classe laborieuse classe dangereuse )
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

  16. #96
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2015
    Messages
    340
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2015
    Messages : 340
    Points : 31
    Points
    31
    Par défaut
    Ca fonctionne ainsi !!! Mille merci Népomucène, tu gères

    Bon, je continue sur notre lancée, je vais essayé de faire planté l'application à travers différents cas d'utilisation

    Je reviendrais bientôt !

  17. #97
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 710
    Points : 4 794
    Points
    4 794
    Par défaut
    Ce qu'il y a d'incroyable c'est que cela a fonctionné avant ...
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

  18. #98
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2015
    Messages
    340
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2015
    Messages : 340
    Points : 31
    Points
    31
    Par défaut
    Ouais

  19. #99
    Membre actif
    Homme Profil pro
    Architecte technique
    Inscrit en
    Août 2006
    Messages
    178
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 178
    Points : 274
    Points
    274
    Par défaut
    C'est moi où je vois des Vector<Vector<>> ?
    Comment t'assures tu de la fermeture correcte des statements ?
    Si tu utilises un driver JDBC récent tu n'as plus besoin du Class.forName car il est chargé par le ServiceLoader (cf. http://docs.oracle.com/javase/tutori...onnecting.html)

  20. #100
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 710
    Points : 4 794
    Points
    4 794
    Par défaut
    Citation Envoyé par ehsavoie Voir le message
    Si tu utilises un driver JDBC récent tu n'as plus besoin du Class.forName car il est chargé par le ServiceLoader (cf. http://docs.oracle.com/javase/tutori...onnecting.html)
    Cela ne marche pas à tous les coups.
    J'ai eu des problèmes de ClassNotFound même avec le dernier driver de Sql Server.
    La faute à une bibliothèque une peu ancienne de JasperReport.

    Pour l'instant, il faut que Spiicky s'occupe de régler ses problèmes de bons gros bugs qu'on lui a gentiment laissé.
    Il est probable qu'il devra s'attaquer à la suppression des méthodes statiques qui, quand elles sont mal programmées, font des plantages difficiles à identifier.
    Après, il sera toujours temps de faire un code plus élégant / optimisé (genre supprimer les vectors)
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

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

Discussions similaires

  1. ListView qui change de taille mais n'affiche pas le contenu d'une ObservableCollection
    Par Atellane dans le forum Windows Presentation Foundation
    Réponses: 4
    Dernier message: 14/08/2014, 10h46
  2. DataGrid n'affiche pas le contenu de certaines colonnes d'un Datatable
    Par alucia dans le forum Windows Presentation Foundation
    Réponses: 3
    Dernier message: 20/09/2013, 13h39
  3. .load qui n'affiche pas le contenu de la page
    Par tonydu91 dans le forum jQuery
    Réponses: 4
    Dernier message: 06/04/2013, 23h58
  4. [SimpleXML] Problème avec simpleXML : il n'affiche pas le contenu de mon élément
    Par ploxien dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 05/05/2007, 19h43
  5. GUI Java par netbeans - ne s'affiche pas
    Par G_angel dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 31/01/2007, 11h38

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