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] Différentes stratégies pour faire une requête [Débutant(e)]


Sujet :

Hibernate Java

  1. #1
    Membre régulier
    Inscrit en
    Avril 2006
    Messages
    238
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 238
    Points : 90
    Points
    90
    Par défaut [Hibernate] Différentes stratégies pour faire une requête
    Bonjour à tous !
    Je commence a débuter en Hibernate et, pour commencer, j'ai utilisé cet exemple :
    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
    package examples;
     
    import java.util.Iterator;
     
    import org.hibernate.Query;
    import org.hibernate.Session;
    import org.hibernate.SessionFactory;
    import org.hibernate.cfg.Configuration;
     
    import roseindia.tutorial.hibernate.Insurance;
     
    public class SelectHQLExample {
     
        public static void main(String[] args) {
            Session session = null;
     
            try {
                // This step will read hibernate.cfg.xml and prepare hibernate for
                // use
                SessionFactory sessionFactory = new Configuration().configure()
                        .buildSessionFactory();
                session = sessionFactory.openSession();
     
                // Using from Clause
                String SQL_QUERY = "from Insurance insurance";
                Query query = session.createQuery(SQL_QUERY);
     
                for (Iterator it = query.iterate(); it.hasNext();) {
                    Insurance insurance = (Insurance) it.next();
                    System.out.println("ID: " + insurance.getLngInsuranceId());
                    System.out.println("First Name: "
                            + insurance.getInsuranceName());
                }
                session.close();
            } catch (Exception e) {
                System.out.println(e.getMessage());
            } finally {
            }
        }
    }
    Avec ces fichiers de conf:
    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
    <?xml version="1.0"?>
    <!DOCTYPE hibernate-mapping PUBLIC 
    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
     
    <hibernate-mapping>
     
        <class name="roseindia.tutorial.hibernate.Insurance"
            table="insurance">
            <id name="lngInsuranceId" type="long" column="ID">
                <generator class="increment" />
            </id>
     
            <property name="insuranceName">
                <column name="insurance_name" />
            </property>
            <property name="investementAmount">
                <column name="invested_amount" />
            </property>
            <property name="investementDate">
                <column name="investement_date" />
            </property>
        </class>
    </hibernate-mapping>
    Et le fichier hibernate.cfg.xml :
    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
    <?xml version='1.0' encoding='utf-8'?>
    <!DOCTYPE hibernate-configuration PUBLIC
    "-//Hibernate/Hibernate Configuration DTD//EN"
    "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
     
    <hibernate-configuration>
    <session-factory>
          <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
          <property name="hibernate.connection.url">jdbc:mysql://localhost/test_hibernate</property>
          <property name="hibernate.connection.username">root</property>
          <property name="hibernate.connection.password">mysql5</property>
          <property name="hibernate.connection.pool_size">10</property>
          <property name="show_sql">true</property>
          <property name="dialect">org.hibernate.dialect.MySQLDialect</property>
          <property name="hibernate.hbm2ddl.auto">update</property>
          <!-- Mapping files -->
          <mapping resource="contact.hbm.xml"/>
    </session-factory>
    </hibernate-configuration>
    Ma fameuse question est :
    Quelle est la différence entre cet exemple et un autre exemple qui utiliserait des requêtes SQL en utilisant un fichier de propriétés (qui remplacerait le fichier hibernate.cfg.xml) ?

    Merci de m'éclaircir.

  2. #2
    ego
    ego est déconnecté
    Rédacteur

    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    1 883
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Hauts de Seine (Île de France)

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

    Informations forums :
    Inscription : Juillet 2004
    Messages : 1 883
    Points : 3 510
    Points
    3 510
    Billets dans le blog
    2
    Par défaut
    Quand tu utilises un framework O/R tu parles Objet dans tes requêtes (ici du HQL).
    Ton exemple est peut être trop simple pour voir franchement la différence alors regardes : le lazy-loading, les stratégies de lock/versioning, la gestion des clés composites, la gestion du polymorphisme,...

  3. #3
    Membre régulier
    Inscrit en
    Avril 2006
    Messages
    238
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 238
    Points : 90
    Points
    90
    Par défaut
    OK, pourrais-tu me donner des exemples simples.
    Car je ne sais pas si j'ai vraiment besoin de ce que tu viens de dire pour mon appli.

    Désolé si je suis trop embêtant.
    Merci.

  4. #4
    ego
    ego est déconnecté
    Rédacteur

    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    1 883
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Hauts de Seine (Île de France)

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

    Informations forums :
    Inscription : Juillet 2004
    Messages : 1 883
    Points : 3 510
    Points
    3 510
    Billets dans le blog
    2
    Par défaut
    Mais la doc d'Hibernate !?

Discussions similaires

  1. [ZF 1.11] comment procéder pour faire une requête a chaud ?
    Par keokaz dans le forum Zend_Form
    Réponses: 1
    Dernier message: 25/09/2011, 05h12
  2. Pb pour faire une requête
    Par snoozeur dans le forum Langage SQL
    Réponses: 2
    Dernier message: 12/06/2010, 04h53
  3. [AC-2007] Utiliser la valeur d'un champ d'une table pour faire une requête
    Par tibofo dans le forum VBA Access
    Réponses: 2
    Dernier message: 29/09/2009, 15h10
  4. Besoin d'aide pour faire une requête
    Par Gau28 dans le forum Requêtes
    Réponses: 6
    Dernier message: 12/09/2009, 10h26
  5. problème pour faire une requête
    Par mitchbuck dans le forum Langage SQL
    Réponses: 2
    Dernier message: 08/11/2005, 23h48

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