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

Hibernate Java Discussion :

[ Hibernate ] Question de débutant


Sujet :

Hibernate Java

  1. #1
    Membre régulier
    Homme Profil pro
    Expert Middleware
    Inscrit en
    Septembre 2006
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Expert Middleware

    Informations forums :
    Inscription : Septembre 2006
    Messages : 75
    Points : 100
    Points
    100
    Par défaut [ Hibernate ] Question de débutant
    Salut à tous,

    voilà j'essaye de me mettre à hibernate et du coup, aprés un peu de lecture, j'ai pris un petit exemple sur internet pour voir comment sa marche .... et ben ca marche pas mais je ne trouve pas pourquoi.

    Tout d'abord voilà ma log wildfly :

    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
    10:22:14,801 INFO  [stdout] (default task-2) do get method
    10:22:14,812 INFO  [stdout] (default task-2) Init
    10:22:15,007 INFO  [org.hibernate.Version] (default task-2) HHH000412: Hibernate Core {5.2.9.Final}
    10:22:15,009 INFO  [org.hibernate.cfg.Environment] (default task-2) HHH000206: hibernate.properties not found
    10:22:15,511 INFO  [org.hibernate.annotations.common.Version] (default task-2) HCANN000001: Hibernate Commons Annotations {5.0.1.Final}
    10:22:15,611 WARN  [org.hibernate.orm.connections.pooling] (default task-2) HHH10001002: Using Hibernate built-in connection pool (not for production use!)
    10:22:15,612 INFO  [org.hibernate.orm.connections.pooling] (default task-2) HHH10001005: using driver [org.mariadb.jdbc.Driver] at URL [jdbc:mysql://localhost:3306/SuiviPoid2]
    10:22:15,613 INFO  [org.hibernate.orm.connections.pooling] (default task-2) HHH10001001: Connection properties: {user=tomcat, password=****}
    10:22:15,613 INFO  [org.hibernate.orm.connections.pooling] (default task-2) HHH10001003: Autocommit mode: false
    10:22:15,616 INFO  [org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl] (default task-2) HHH000115: Hibernate connection pool size: 10 (min=1)
    10:22:15,673 INFO  [org.hibernate.dialect.Dialect] (default task-2) HHH000400: Using dialect: org.hibernate.dialect.MySQLInnoDBDialect
    10:22:15,988 INFO  [org.hibernate.validator.internal.util.Version] (default task-2) HV000001: Hibernate Validator 5.2.4.Final
    10:22:16,099 INFO  [stdout] (default task-2) listEmployees method ...
    10:22:16,239 WARN  [org.hibernate.hql.internal.QuerySplitter] (default task-2) HHH000183: no persistent classes found for query class: from Employee e
    10:22:16,241 INFO  [org.hibernate.hql.internal.QueryTranslatorFactoryInitiator] (default task-2) HHH000397: Using ASTQueryTranslatorFactory
    10:22:16,249 INFO  [stdout] (default task-2) employees ... []
    J'ai donc une servlet :

    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
    import java.io.IOException;
    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
     
    /**
     * Servlet implementation class test
     */
    @WebServlet("/test")
    public class test extends HttpServlet {
    	private static final long serialVersionUID = 1L;
     
    	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		System.out.println("do get method");
    		ManageEmployee mgnt = new ManageEmployee();
    		mgnt.listEmployees();
     
    		response.getWriter().append("Served at: ").append(request.getContextPath());
    	}
    }
    Et une méthode censé allez me chercher mes employés en base :

    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
     
     
    import java.util.List;
    import java.util.Iterator;
     
    import org.hibernate.HibernateException;
    import org.hibernate.Session;
    import org.hibernate.Transaction;
    import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
    import org.hibernate.SessionFactory;
    import org.hibernate.cfg.Configuration;
    import org.hibernate.service.ServiceRegistry;
     
    public class ManageEmployee {
    	private static SessionFactory sessionFactory;
     
    	public ManageEmployee() {
    		try {
    			System.out.println("Init");
    			Configuration configuration = new Configuration().configure();
     
    			ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder()
    					.applySettings(configuration.getProperties()).build();
    			sessionFactory = configuration.buildSessionFactory(serviceRegistry);
    		} catch (Throwable ex) {
    			System.err.println("Failed to create sessionFactory object." + ex);
    			throw new ExceptionInInitializerError(ex);
    		}
    	}
     
    	public void listEmployees() {
    		System.out.println("listEmployees method ...");
    		Session session = sessionFactory.openSession();
    		Transaction tx = null;
    		try {
    			tx = session.beginTransaction();
    			List employees = session.createQuery("from Employee e").list();
    			System.out.println("employees ... " + employees.toString());
    			for (Iterator iterator = employees.iterator(); iterator.hasNext();) {
    				Employee employee = (Employee) iterator.next();
    				System.out.print("First Name: " + employee.getFirstName());
    				System.out.print("  Last Name: " + employee.getLastName());
    				System.out.println("  Salary: " + employee.getSalary());
    			}
    			tx.commit();
    		} catch (HibernateException e) {
    			if (tx != null)
    				tx.rollback();
    			e.printStackTrace();
    		} finally {
    			session.close();
    		}
    	}
    }
    un fichier de configuration hibernate :

    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
    <?xml version='1.0' encoding='utf-8'?>
     
    <!DOCTYPE hibernate-configuration PUBLIC
        "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
        "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
     
    <hibernate-configuration>
          <session-factory>
                <!-- local connection properties -->
                <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/MaDatabase</property>
                <property name="hibernate.connection.driver_class">org.mariadb.jdbc.Driver</property>
                <property name="hibernate.connection.username">local</property>
                <property name="hibernate.connection.password">p@ssword</property>
                <property name="hibernate.connection.pool_size">10</property>
     
                <!-- dialect for MySQL -->
                <property name="dialect">org.hibernate.dialect.MySQLInnoDBDialect</property>
     
                <property name="hibernate.show_sql">true</property>
                <property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property>
                <property name="cache.use_query_cache">false</property>
                <property name="show_sql">true</property>
    			<mapping resource="Employee.hbm.xml"/>
          </session-factory>
     
    </hibernate-configuration>
    et un fichier de mapping :

    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
    <?xml version="1.0" encoding="utf-8"?>
    <!DOCTYPE hibernate-mapping PUBLIC 
     "-//Hibernate/Hibernate Mapping DTD//EN"
     "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"> 
     
    <hibernate-mapping>
       <class name="Employee" table="EMPLOYEE">
          <meta attribute="class-description">
             This class contains the employee detail. 
          </meta>
          <id name="id" type="int" column="id">
             <generator class="native"/>
          </id>
          <property name="firstName" column="first_name" type="string"/>
          <property name="lastName" column="last_name" type="string"/>
          <property name="salary" column="salary" type="int"/>
       </class>
    </hibernate-mapping>
    Si vous saviez me guider ... car là je suis un peu sec ... j'essaye des choses mais sans résultat.

    Merci.
    Syberi@
    Quand on est mort, on ne sait pas qu’on est mort, c’est pour les autres que c’est difficile… Quand on est con, c’est pareil.

  2. #2
    Membre expérimenté Avatar de Cincinnatus
    Homme Profil pro
    Développeur d'applications métier
    Inscrit en
    Mars 2007
    Messages
    592
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur d'applications métier
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2007
    Messages : 592
    Points : 1 679
    Points
    1 679
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <hibernate-mapping>
       <class name="Employee" table="EMPLOYEE">
    Je ne vois pas de lien vers le package de la classe Employee dans le mapping. Est-ce normal ? La classe est-elle à la racine du source ??

  3. #3
    Membre régulier
    Homme Profil pro
    Expert Middleware
    Inscrit en
    Septembre 2006
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Expert Middleware

    Informations forums :
    Inscription : Septembre 2006
    Messages : 75
    Points : 100
    Points
    100
    Par défaut
    Bonjour,

    oui elle est a la racine du source. J'avais essayé de la mettre dans un package mais comme ca ne marchais pas, je me suis "simplifié" la configuration en ne mettant pas de package.

    Syberi@
    Quand on est mort, on ne sait pas qu’on est mort, c’est pour les autres que c’est difficile… Quand on est con, c’est pareil.

  4. #4
    Membre expérimenté Avatar de Cincinnatus
    Homme Profil pro
    Développeur d'applications métier
    Inscrit en
    Mars 2007
    Messages
    592
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur d'applications métier
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2007
    Messages : 592
    Points : 1 679
    Points
    1 679
    Par défaut
    Citation Envoyé par Syberi@ Voir le message
    Bonjour,

    oui elle est a la racine du source. J'avais essayé de la mettre dans un package mais comme ca ne marchais pas, je me suis "simplifié" la configuration en ne mettant pas de package.

    Syberi@
    Et ça donnait quoi avec le package ? En général, c'est plutôt conseillé d'en utiliser,et ça ne devrait pas poser de problème. Quelles étaient la configuration et la structure du code ?

Discussions similaires

  1. Réponses: 13
    Dernier message: 23/06/2005, 10h56
  2. question de débutant sur les objets
    Par boucher_emilie dans le forum ASP
    Réponses: 3
    Dernier message: 06/08/2004, 10h51
  3. [MFC] Quelques questions de débutant...
    Par Sephi dans le forum MFC
    Réponses: 4
    Dernier message: 20/02/2004, 17h25
  4. Questions de débutant
    Par J-P-B dans le forum XMLRAD
    Réponses: 12
    Dernier message: 24/07/2003, 15h19
  5. [HyperFile] 2 questions de débutant
    Par khan dans le forum HyperFileSQL
    Réponses: 2
    Dernier message: 29/04/2002, 23h18

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