Consultation de la base de donne mysql

Fermé
mb42 Messages postés 432 Date d'inscription vendredi 17 octobre 2008 Statut Membre Dernière intervention 14 janvier 2014 - 10 août 2010 à 22:17
mb42 Messages postés 432 Date d'inscription vendredi 17 octobre 2008 Statut Membre Dernière intervention 14 janvier 2014 - 23 août 2010 à 15:53
Bonjour,

j'ai créer une application JEE (entreprise application)avec netbeans qui traite ces deux notions EJB3 et glassfish

mais mon problème est comment intégrer la notion d'hibernate/JPA

c a dire comment ajouter a mon application le mapping de la base de donne MYSQL

mon application est subdivise en deux partie : clientGPE et projetGPE-ejb

dans projetGPE-ejb

je creer projetjpe.ejb.entite et projetjpe.ejb.session



je vous donne un exemple de class qui se trouve dans projetjpe.ejb.entite


package projetgpe.ejb.entites;

import java.io.Serializable;
import java.util.Collection;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.ManyToMany;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;

/**
 *
 * @author lefennec
 */
@Entity
@Table(name = "ENSEIGNANT")
@NamedQueries({@NamedQuery(name = "Enseignant.findByMatriculeens", query = "SELECT e FROM Enseignant e WHERE e.matriculeens = :matriculeens"), @NamedQuery(name = "Enseignant.findByNomens", query = "SELECT e FROM Enseignant e WHERE e.nomens = :nomens"), @NamedQuery(name = "Enseignant.findByPrenomens", query = "SELECT e FROM Enseignant e WHERE e.prenomens = :prenomens"), @NamedQuery(name = "Enseignant.findBySexeens", query = "SELECT e FROM Enseignant e WHERE e.sexeens = :sexeens"), @NamedQuery(name = "Enseignant.findByGradeens", query = "SELECT e FROM Enseignant e WHERE e.gradeens = :gradeens"), @NamedQuery(name = "Enseignant.findByFonctionens", query = "SELECT e FROM Enseignant e WHERE e.fonctionens = :fonctionens")})
public class Enseignant implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @Column(name = "MATRICULEENS", nullable = false)
    private String matriculeens;
    @Column(name = "NOMENS")
    private String nomens;
    @Column(name = "PRENOMENS")
    private String prenomens;
    @Column(name = "SEXEENS")
    private String sexeens;
    @Column(name = "GRADEENS")
    private String gradeens;
    @Column(name = "FONCTIONENS")
    private String fonctionens;
    @ManyToMany(mappedBy = "matriculeensCollection")
    private Collection<Cours> codecoursCollection;

    public Enseignant() {
    }

    public Enseignant(String matriculeens) {
        this.matriculeens = matriculeens;
    }

    public String getMatriculeens() {
        return matriculeens;
    }

    public void setMatriculeens(String matriculeens) {
        this.matriculeens = matriculeens;
    }

    public String getNomens() {
        return nomens;
    }

    public void setNomens(String nomens) {
        this.nomens = nomens;
    }

    public String getPrenomens() {
        return prenomens;
    }

    public void setPrenomens(String prenomens) {
        this.prenomens = prenomens;
    }

    public String getSexeens() {
        return sexeens;
    }

    public void setSexeens(String sexeens) {
        this.sexeens = sexeens;
    }

    public String getGradeens() {
        return gradeens;
    }

    public void setGradeens(String gradeens) {
        this.gradeens = gradeens;
    }

    public String getFonctionens() {
        return fonctionens;
    }

    public void setFonctionens(String fonctionens) {
        this.fonctionens = fonctionens;
    }

    public Collection<Cours> getCodecoursCollection() {
        return codecoursCollection;
    }

    public void setCodecoursCollection(Collection<Cours> codecoursCollection) {
        this.codecoursCollection = codecoursCollection;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (matriculeens != null ? matriculeens.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof Enseignant)) {
            return false;
        }
        Enseignant other = (Enseignant) object;
        if ((this.matriculeens == null && other.matriculeens != null) || (this.matriculeens != null && !this.matriculeens.equals(other.matriculeens))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "projetgpe.ejb.entites.Enseignant[matriculeens=" + matriculeens + "]";
    }

}


et un exemple pour projetjpe.ejb.session

package projetgpe.ejb.sessions;

import java.util.List;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import projetgpe.ejb.entites.Enseignant;

/**
 *
 * @author lefennec
 */
@Stateless
public class EnseignantFacade implements EnseignantFacadeLocal, EnseignantFacadeRemote {
    @PersistenceContext
    private EntityManager em;

    public void create(Enseignant enseignant) {
        em.persist(enseignant);
    }

    public void edit(Enseignant enseignant) {
        em.merge(enseignant);
    }

    public void remove(Enseignant enseignant) {
        em.remove(em.merge(enseignant));
    }

    public Enseignant find(Object id) {
        return em.find(projetgpe.ejb.entites.Enseignant.class, id);
    }

    public List<Enseignant> findAll() {
        return em.createQuery("select object(o) from Enseignant as o").getResultList();
    }

    public void enregistrerEnseignant(String matricule, String nom, String prenom, String sexe, String grade, String fonction) 
    {
        Enseignant en=new Enseignant();
        en.setMatriculeens(matricule);
        en.setNomens(nom);
        en.setPrenomens(prenom);
        en.setSexeens(sexe);
        en.setGradeens(grade);
        en.setFonctionens(fonction);
        em.persist(en);
        em.flush();      
    }

}


package projetgpe.ejb.sessions;

import java.util.List;
import javax.ejb.Local;
import projetgpe.ejb.entites.Enseignant;

/**
 *
 * @author lefennec
 */
@Local
public interface EnseignantFacadeLocal {

    void create(Enseignant enseignant);

    void edit(Enseignant enseignant);

    void remove(Enseignant enseignant);

    Enseignant find(Object id);

    List<Enseignant> findAll();

    void enregistrerEnseignant(String matricule, String nom, String prenom, String sexe, String grade, String fonction);

}


package projetgpe.ejb.sessions;

import java.util.List;
import javax.ejb.Remote;
import projetgpe.ejb.entites.Enseignant;

/**
 *
 * @author lefennec
 */
@Remote
public interface EnseignantFacadeRemote {

    void create(Enseignant enseignant);

    void edit(Enseignant enseignant);

    void remove(Enseignant enseignant);

    Enseignant find(Object id);

    List<Enseignant> findAll();

    void enregistrerEnseignant(String matricule, String nom, String prenom, String sexe, String grade, String fonction);

}



ces sont des exemple pour simplifier le but qui est comment ajouter la notion d'hibernate/jpa pour le mapping de la base de donne mysql

et autre question comment consulter la base de donner pour cette application

je vous donne un exemple de class qui est enseignant qui a des attributs qui sont les même dans la base de donne( donne un nom comme vous voulez)

l'essentielle comment ajouter pour ce même code les notions qui j'ai déjà dis et si je créer une table avec JPA comment consulter leurs attributs

si vous avez besoin d'autre fichier n'hésite pas a me demander


merci d'avance

11 réponses

mb42 Messages postés 432 Date d'inscription vendredi 17 octobre 2008 Statut Membre Dernière intervention 14 janvier 2014 7
13 août 2010 à 22:05
voila le fichier persistence.xml

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="1.0" xmlns="http://www.oracle.com/webfolder/technetwork/jsc/xml/ns/persistence/index.html" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.oracle.com/webfolder/technetwork/jsc/xml/ns/persistence/index.html http://www.oracle.com/webfolder/technetwork/jsc/xml/ns/persistence/persistence_1_0.xsd">
  <persistence-unit name="ProjetGPE-ejbPU" transaction-type="JTA">
    <jta-data-source>projetgpeJNDI</jta-data-source>
    <properties/>
  </persistence-unit>
</persistence>


s'il manque quelque chose SVP AIDEZ MOI
0
mb42 Messages postés 432 Date d'inscription vendredi 17 octobre 2008 Statut Membre Dernière intervention 14 janvier 2014 7
14 août 2010 à 16:02
personne n'a aucune idée
0
mb42 Messages postés 432 Date d'inscription vendredi 17 octobre 2008 Statut Membre Dernière intervention 14 janvier 2014 7
14 août 2010 à 16:17
je sais que ce fichier ne contient pas la notion d'hibernate/jpa

mais pour cela je vous consulter pour être capable a le compléter

si vous avez des information pour m'aider a corriger ce fichier je suis la

toujours ce forum est mon sauveur

merci d'avance
0
mb42 Messages postés 432 Date d'inscription vendredi 17 octobre 2008 Statut Membre Dernière intervention 14 janvier 2014 7
17 août 2010 à 18:30
répond SVP

voila mon idee pour le fichier persistence.xml

j'espère que vous pourriez m'aidez

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="1.0" xmlns="http://www.oracle.com/webfolder/technetwork/jsc/xml/ns/persistence/index.html" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.oracle.com/webfolder/technetwork/jsc/xml/ns/persistence/index.html http://www.oracle.com/webfolder/technetwork/jsc/xml/ns/persistence/persistence_1_0.xsd">
  <persistence-unit name="ProjetGPE-ejbPU" transaction-type="JTA">
    <provider>org.hibernate.ejb.HibernatePersistence</provider>
    <jta-data-source>projetgpeJNDI</jta-data-source>
 <mapping-file>ormap.xml</mapping-file>
 
      <jar-file>MyApp.jar</jar-file>
 
      <class>org.acme.enseignant</class>
 
      <class>org.acme.utilisateur</class>
 
      <class>org.acme.cour</class>
 
      <class>org.acme.classe</class>
      <class>org.acme.department</class>
      <class>org.acme.presense</class>
      <class>org.acme.seance</class>
      <class>org.acme.jourcours</class>
      <class>org.acme.joursemaine</class>
      <class>org.acme.droits</class>
      <shared-cache-mode>ENABLE_SELECTOVE</shared-cache-mode>
 
      <validation-mode>CALLBACK</validation-mode>
    <properties>
     <property name="hibernate.dialect" value="org.hibernate.dialect.HSQLDialect"/>
 
         <property name="hibernate.hbm2ddl.auto" value="create-drop"/>
    </properties>
  </persistence-unit>
</persistence>
 
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
mb42 Messages postés 432 Date d'inscription vendredi 17 octobre 2008 Statut Membre Dernière intervention 14 janvier 2014 7
18 août 2010 à 16:17
les noms que j'écrivent :utilisateur,département,enseignant,présence,seance.....

sont tous des class dans mon application

s'il y'a d'autre chose que je dois mettre n'hésite pas a m'aidez

il ne reste pas beaucoup de temps car je dois terminer cette application dans 2 semaines

merci d'avance
0
mb42 Messages postés 432 Date d'inscription vendredi 17 octobre 2008 Statut Membre Dernière intervention 14 janvier 2014 7
18 août 2010 à 20:04
je travaille avec une base MySQL, je suppose qu il me faut changer la valeur de cette ligne : <property name="hibernate.dialect" value="org.hibernate.dialect.HSQLDialect"/>
0
mb42 Messages postés 432 Date d'inscription vendredi 17 octobre 2008 Statut Membre Dernière intervention 14 janvier 2014 7
19 août 2010 à 15:56
a mon avis le fichier persistence.xml dois être comme suit

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="1.0" xmlns="http://www.oracle.com/webfolder/technetwork/jsc/xml/ns/persistence/index.html"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="https://www.oracle.com/java/technologies/
ns/persistence http://www.oracle.com/webfolder/technetwork/jsc/xml/ns/persistence/persistence_1_0.xsd">
 <persistence-unit name="ProjetGPE-ejbPU" transaction-type="JTA">
 <provider>org.hibernate.ejb.HibernatePersistence</provider>
    <jta-data-source>projetgpeJNDI</jta-data-source>
       <properties>
           <!-- Dialecte -->
           <property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5InnoDBDialect"/>
       </properties>
</persistence-unit>
</persistence>


est ce que correcte

dans le même contexte par exemple comment créer les tables (enseignant,utilisateur..) avec leurs attributs
(bien sur pas manuellement mais avec JPA) et dans quel fichier je dois écrire ce code
0
mb42 Messages postés 432 Date d'inscription vendredi 17 octobre 2008 Statut Membre Dernière intervention 14 janvier 2014 7
19 août 2010 à 16:17
répond SVP je suis vraiment bloque
0
mb42 Messages postés 432 Date d'inscription vendredi 17 octobre 2008 Statut Membre Dernière intervention 14 janvier 2014 7
19 août 2010 à 19:58
la notion de JEE est très difficile pour ce forum
0
mb42 Messages postés 432 Date d'inscription vendredi 17 octobre 2008 Statut Membre Dernière intervention 14 janvier 2014 7
20 août 2010 à 16:17
je suppose que La création des tables se fait selon les attributs de mes entityBeans et les annotations que j' as mis dans mes classes

et pour persistence.xml je suppose que dois être comme suit :
<?xml version="1.0" encoding="UTF-8"?>

<persistence version="1.0" xmlns="http://www.oracle.com/webfolder/technetwork/jsc/xml/ns/persistence/index.html" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.oracle.com/webfolder/technetwork/jsc/xml/ns/persistence/index.html http://www.oracle.com/webfolder/technetwork/jsc/xml/ns/persistence/persistence_1_0.xsd">
<persistence-unit name="ProjetGPE-ejbPU">
<jta-data-source>projetgpe</jta-data-source> <!-- nom de mon datasource configuré dans mon serveur J2EE -->
<!-- Liste de toutes les classes ici -->
<class>projetgpe.ejb.entites.enseignant</class>
<class>projetgpe.ejb.entites.cours</class>
<class>projetgpe.ejb.entites.department</class>
<class>projetgpe.ejb.entites.droits</class>
<class>projetgpe.ejb.entites.presence</class>
<class>projetgpe.ejb.entites.seance</class>
<class>projetgpe.ejb.entites.utilisateur</class>

<properties>
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect"/>
<property name="hibernate.connection.characterEncoding" value="utf8"/>
<property name="hibernate.hbm2ddl.auto" value="create"/>
</properties>
</persistence-unit>
</persistence>

pouvez le corriger s'il est incorrecte
0
mb42 Messages postés 432 Date d'inscription vendredi 17 octobre 2008 Statut Membre Dernière intervention 14 janvier 2014 7
23 août 2010 à 15:53
d'apres quelque document sur le net je constate que Les tables de ma base de données sont crées suivant les ressources JDBC que j'ai indiqués à Glassfish dans le fichier sun-ressource.xml.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE resources PUBLIC "-//Sun Microsystems, Inc.//DTD Application Server 9.0 Resource Definitions //EN" "https://www.oracle.com/webfolder/technetwork/sun/software/dtd/appserver/sun-resources_1_3.dtd">
<resources>
  <jdbc-resource enabled="true" jndi-name="projetgpeJNDI" object-type="user" pool-name="derby_netPool"/>
  <jdbc-connection-pool allow-non-component-callers="false" associate-with-thread="false" connection-creation-retry-attempts="0" connection-creation-retry-interval-in-seconds="10" connection-leak-reclaim="false" connection-leak-timeout-in-seconds="0" connection-validation-method="auto-commit" datasource-classname="org.apache.derby.jdbc.ClientDataSource" fail-all-connections="false" idle-timeout-in-seconds="300" is-connection-validation-required="false" is-isolation-level-guaranteed="true" lazy-connection-association="false" lazy-connection-enlistment="false" match-connections="false" max-connection-usage-count="0" max-pool-size="32" max-wait-time-in-millis="60000" name="derby_netPool" non-transactional-connections="false" pool-resize-quantity="2" res-type="javax.sql.DataSource" statement-timeout-in-seconds="-1" steady-pool-size="8" validate-atmost-once-period-in-seconds="0" wrap-jdbc-objects="false">
    <property name="serverName" value="localhost"/>
    <property name="PortNumber" value="1527"/>
    <property name="DatabaseName" value="friday"/>
    <property name="User" value="app"/>
    <property name="Password" value="app"/>
    <property name="URL" value="jdbc:derby://localhost:1527/friday"/>
    <property name="driverClass" value="org.apache.derby.jdbc.ClientDriver"/>
  </jdbc-connection-pool>
</resources>
 


et que Hibernate se charge de tout faire à ma place

mon question est :je veux savoir où intervient cette notion(Hibernate)j'ai déjà vous donner un exemple des fichier entites et sessions pour l'exemple de "l'enseignant"
0