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

Java EE Discussion :

Accès à MySQL par EJB


Sujet :

Java EE

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Lycéen
    Inscrit en
    Décembre 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Lycéen
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 8
    Par défaut Accès à MySQL par EJB
    Bonjour,

    Je ne sais pas trop si je suis dans le bon forum, si ce n'est pas le cas pouvez vous me réorienter svp ..

    Je suis débutant et je dois faire un EJB avec des entitées dont les informations se trouvent dans une base MySQL.
    J'ai créé ces entitées dans un projet EJB avec Netbeans, et j'ai un fichier de persistance avec l accès a ma base.

    Néanmoins, lorsque je fais un "findAll", c est une liste vide que l'on me renvoit.
    J'ai fait ajouts, et tout se passe bien, dès que je reteste mon EJB, j'ai bien 4 entitées qui sont retournées.
    Néanmoins, je n'ai que deux tuples dans la table correspondante, et en fait il ne prend pas du tout en compte la base de données .. je ne sais pas ou il va enregistrer les infos, et ou il va les reprendre apres, mais le fait est qu'il ne fait pas attention a ma base de données ..

    Quelqu'un aurait-il une suggestion pour m'aider à résoudre ce problème ?

    Merci d'avance pour votre aide ..

  2. #2
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2004
    Messages
    1 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 184
    Par défaut
    Bonjour,
    Poste ton fichier persistence.xml, ton code pour faire le find et pour ajouter des entités. Ca devrait aider à comprendre le problème.

  3. #3
    Membre habitué
    Homme Profil pro
    Lycéen
    Inscrit en
    Décembre 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Lycéen
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 8
    Par défaut code
    en fait, je crée les entités avec l'assistant NetBeans (create entity from database), et ca me crée une entité sur la table que je désigne dans ma base de données.
    Pour ce qui est du fichier de persistence, je le crée également avec assistant, et il teste la connection (il dit qu'elle est correcte)
    le XML généré est le suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?xml version="1.0" encoding="UTF-8"?>
    <persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
      <persistence-unit name="test" transaction-type="JTA">
        <provider> org.eclipse.persistence.jpa.PersistenceProvider </provider>
        <jta-data-source> MonSource </jta-data-source>
        <exclude-unlisted-classes> false </exclude-unlisted-classes>
        <properties>
          <property name="eclipselink.ddl-generation" value="create-tables"/>
        </properties>
      </persistence-unit>
    </persistence>
    en ce qui concerne l'appel proprement dit, je fais seulement appel a la méthode de l'entitée qui a été générée dans mon sessionBean :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    @Stateless
    public class NewSessionBean implements NewSessionBeanRemote {
     
        @EJB
        private ClientFacadeLocal ClientFacade;    
     
        @Override
        public String getClients() 
        {
            List<Client> listeC =  ClientFacade.findAll();
         }
     
        }
    voila, s il vous faut d'autres détails dites le moi ..

  4. #4
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2004
    Messages
    1 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 184
    Par défaut
    "MonSource" pointe bien sur la bonne base ?
    Le code intéressant est celui qui fait l'accès à l'entity manager.

  5. #5
    Membre habitué
    Homme Profil pro
    Lycéen
    Inscrit en
    Décembre 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Lycéen
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 8
    Par défaut suite
    oui oui c est bien la bonne base car quand je clique sur "tester connection" ca me met que c'est correct :



    http://imageshack.us/photo/my-images...sistance1.png/

    par contre c'est vrai qu'a la derniere etape j'ai ceci qui s'affiche :
    et je clique sur "finish" .. je ne mets pas de schéma c est dans le "root" ou quelque chose du genre ..



    http://imageshack.us/photo/my-images...sistance2.png/

    En ce qui concerne le findall(), il est généré par netbeans quand je créé mon entité dans une classe "ClientFacade" :

    @Stateless
    public class ClientFacade extends AbstractFacade<Client> implements ClientFacadeLocal {
    @PersistenceContext(unitName = "test")
    private EntityManager em;

    protected EntityManager getEntityManager() {
    return em;

    public List<Client> findAll() {
    javax.persistence.criteria.CriteriaQuery cq = getEntityManager
    ().getCriteriaBuilder().createQuery();
    cq.select(cq.from(entityClass));
    return getEntityManager().createQuery(cq).getResultList();
    }
    }

    il y a donc bien le PersistenceContext qui est correctement mis pour faire la référence vers le fichier de persistance.
    (j'avoue je ne comprends pas le code du findall(), mais en tout cas il va alors faire la sélection en exécutant la requete qu'il y a dans mon entité pour me retourner une liste avec tous les clients :

    @Entity
    @Table(name = "Client")
    @XmlRootElement
    @NamedQueries({
    @NamedQuery(name = "Client.findAll", query = "SELECT c FROM Client c"),

Discussions similaires

  1. Accès à MySQL par tunnel ssh
    Par CinePhil dans le forum Administration
    Réponses: 2
    Dernier message: 15/06/2009, 23h03
  2. Accès à MySQL par BO
    Par Wombat49 dans le forum Débuter
    Réponses: 1
    Dernier message: 22/10/2008, 09h38
  3. [JAAS] acces a un ejb 3 par un user et mot de passe
    Par lamnaourS dans le forum Java EE
    Réponses: 1
    Dernier message: 23/08/2007, 12h39
  4. acces base mysql par jdbc via un proxy
    Par xavfree dans le forum JDBC
    Réponses: 4
    Dernier message: 23/07/2007, 14h48
  5. [MySQL] Accès MySQL par PHP
    Par Badaboumpanpan dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 25/06/2006, 16h41

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