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

NetBeans Java Discussion :

[Visual Web] Pbm de Dataprovider,JDBC ou config Netbeans?


Sujet :

NetBeans Java

  1. #1
    Membre habitué Avatar de flotho
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Novembre 2006
    Messages
    156
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Novembre 2006
    Messages : 156
    Points : 154
    Points
    154
    Par défaut Pbm de Dataprovider,JDBC ou config Netbeans?
    Bonjour à tous,

    Je travaille avec NetBeans 6.7.1 version française et sur un projet visual web sous le framework JSF.
    Je travaille avec une base postgreSQL 8.3 et les bons driver.

    J'ai lu tous les tuto, j'arrive à créér des choses graphiquement sympa et je fait même des binding de table avec affichage de liste.

    En revanche, Je galère avec les dataprovider.
    J'ai pas mal de soucis alors j'ai fait un test super simple avec une base derby :
    - 1 page web
    - 1 bouton

    dans le code du bouton j'ai mis :
    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
    public String button1_action() {
            // TODO: Process the action. Return value is a navigation
            // case name where null will return to the same page.
     
            if (triptypeDataProvider.canAppendRow()) {
                try {
     
                    RowKey rowKey = triptypeDataProvider.appendRow();
                    triptypeDataProvider.setCursorRow(rowKey);
                    triptypeDataProvider.setValue("TRIPTYPE.TRIPTYPEID",
                            rowKey, 12);
                    triptypeDataProvider.setValue("TRIPTYPE.NAME",
                            rowKey, "test");
                    triptypeDataProvider.setValue("TRIPTYPE.DESCRIPTION",
                            rowKey, "test");
                    triptypeDataProvider.commitChanges();
     
                } catch (Exception e) {
                    error("Cannot append new trip type: " + e);
                    triptypeDataProvider.refresh();
                    return null;
                }
            } else {
                error("Cannot append trip types");
                return null;
            }
            return null;
    Là ça fonctionne mais si je remplace le dataprovider derby par un postgreSQL alors ça ne passe pas, je ne peux pas faire de setValue ==> il me renvoie une exception.

    Remarque : Lorsque je charge les projets exemple qui travaillent avec derby, j'arrive à faire des suppressions / création dans la base.
    Fondateur www.mind-and-go.com
    Créateur www.kipigo.com
    Linux | Java EE | NB Platform | Pentaho | PostgreSQL | OpenERP

  2. #2
    Expert confirmé
    Avatar de Valère
    Profil pro
    Inscrit en
    Août 2005
    Messages
    1 334
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Août 2005
    Messages : 1 334
    Points : 4 740
    Points
    4 740
    Par défaut
    Bonjour,

    Peux-tu poster l'exception s'il te plait?

    Valère
    Pensez au bouton
    Je ne répond pas aux questions techniques par email ou MP.

  3. #3
    Membre habitué Avatar de flotho
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Novembre 2006
    Messages
    156
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Novembre 2006
    Messages : 156
    Points : 154
    Points
    154
    Par défaut
    Avant toute chose merci de cette réponse,

    Je suis reparti de zéro :

    Nouveau projet web avec serveur glassfish 2.1 et Java EE5.
    Framework Visual Web Java Server faces uniquement.

    Dans la première page 2 textfield woodstock dont j'ai mis les id à codeDistrict et libelledistrict.
    1 bouton et 1 message group

    Dans mes services, sélection de la table district de la connexion postgreSQL puis D&D dans la form ==> création automatique du dataprovider (pour info la table a deux champs string dont un est la clé)

    Double clic sur le bouton + ajout de 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
     
     public String button1_action() {
            // TODO: Process the action. Return value is a navigation
            // case name where null will return to the same page.
     
            if (districtDataProvider.canAppendRow()) {
                try {
                    RowKey rk = districtDataProvider.appendRow();
                    districtDataProvider.setCursorRow(rk);
                    districtDataProvider.setValue("DISTRICT.ID_DISTRICT", rk, "T12");
                    districtDataProvider.setValue("DISTRICT.LIBELLE", rk, "T1");
                    districtDataProvider.commitChanges();
                } catch (Exception e) {
                    error("Cannot append new district: " + e);
                }
     
            }
            return "districtCree";
        }
    J'en perds mon latin, je ne visualise même plus de message d'erreur mais l'insertion ne se fait pas pour autant.
    Je suis passé en mode débug pour me rendre compte que mon dataprovider n'était même plus en canappendrow=true!!
    C'est désarmant!
    comment cela se fait il?
    Fondateur www.mind-and-go.com
    Créateur www.kipigo.com
    Linux | Java EE | NB Platform | Pentaho | PostgreSQL | OpenERP

  4. #4
    Membre habitué Avatar de flotho
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Novembre 2006
    Messages
    156
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Novembre 2006
    Messages : 156
    Points : 154
    Points
    154
    Par défaut
    alors je viens de trouver pourquoi je ne pouvais pas être en canappendrow()=true.
    Problème de user et password sur la connexion.

    Donc désoramais le message groupe de ma page me renvoie :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Cannot append new district: java.lang.IllegalArgumentException: DISTRICT.ID_DISTRICT
    Fondateur www.mind-and-go.com
    Créateur www.kipigo.com
    Linux | Java EE | NB Platform | Pentaho | PostgreSQL | OpenERP

  5. #5
    Expert confirmé
    Avatar de Valère
    Profil pro
    Inscrit en
    Août 2005
    Messages
    1 334
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Août 2005
    Messages : 1 334
    Points : 4 740
    Points
    4 740
    Par défaut
    Apparemment, ton dataprovider ne contient pas d'élément "DISTRICT.ID_DISTRICT"?
    Pensez au bouton
    Je ne répond pas aux questions techniques par email ou MP.

  6. #6
    Membre habitué Avatar de flotho
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Novembre 2006
    Messages
    156
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Novembre 2006
    Messages : 156
    Points : 154
    Points
    154
    Par défaut
    Merci de votre réponse,

    Mais où paramètrer celà?
    Dans la requête SQL affectée au rowset?

    Dans mon fichier page1.java :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    districtDataProvider.setCachedRowSet((javax.sql.rowset.CachedRowSet) getValue("#{SessionBean1.districtRowSet}"));
    Dans mon session Bean :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    districtRowSet.setDataSourceName("java:comp/env/jdbc/public_PostgreSQL");
            districtRowSet.setCommand("SELECT ALL public.district.id_district, public.district.libelle FROM public.district");
            districtRowSet.setTableName("district");
    Tout semble là!
    Fondateur www.mind-and-go.com
    Créateur www.kipigo.com
    Linux | Java EE | NB Platform | Pentaho | PostgreSQL | OpenERP

  7. #7
    Expert confirmé
    Avatar de Valère
    Profil pro
    Inscrit en
    Août 2005
    Messages
    1 334
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Août 2005
    Messages : 1 334
    Points : 4 740
    Points
    4 740
    Par défaut
    Et en essayant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
                   districtDataProvider.setValue("PUBLIC.DISTRICT.ID_DISTRICT", rk, "T12");
    ?
    Pensez au bouton
    Je ne répond pas aux questions techniques par email ou MP.

  8. #8
    Membre habitué Avatar de flotho
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Novembre 2006
    Messages
    156
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Novembre 2006
    Messages : 156
    Points : 154
    Points
    154
    Par défaut
    Merci merci de votre diligence.

    A priori j'ai trouvé,

    Je pense que je n'utilisait pas la bonne définition de setValue.
    Jai fait aussi un petit refresh avant d'attaquer le dataprovider :

    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
    districtDataProvider.refresh();
            if (districtDataProvider.canAppendRow()) {
                try {
                    RowKey rk = districtDataProvider.appendRow();
                    districtDataProvider.setCursorRow(rk);
                    districtDataProvider.setValue("libelle",rk, "T12");
                    districtDataProvider.setValue("id_district",rk, "T12");
                    districtDataProvider.commitChanges();
                } catch (Exception e) {
                    error("Erreur d'insertion du district ! " + e.getMessage());
                }
            }
            else
            {
                error("Impossible d'insérer un district");
            }
    Et là cela fonctionne!!

    Merci pour votre précieux soutien.

    Cordialement
    Fondateur www.mind-and-go.com
    Créateur www.kipigo.com
    Linux | Java EE | NB Platform | Pentaho | PostgreSQL | OpenERP

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 02/08/2011, 16h40
  2. Réponses: 8
    Dernier message: 13/09/2009, 11h54
  3. [jdbc] fichier de config
    Par calimero82 dans le forum JDBC
    Réponses: 14
    Dernier message: 21/06/2005, 13h48
  4. [Debutant]Pbm de config des propriétés du projet
    Par jazer dans le forum JBuilder
    Réponses: 1
    Dernier message: 23/03/2005, 21h19
  5. pbm config réseau sous vmware
    Par tonf dans le forum VMware
    Réponses: 4
    Dernier message: 17/07/2004, 10h49

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