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 : 55
    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 : 55
    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, 04h12
  2. Pb pour faire une requête
    Par snoozeur dans le forum Langage SQL
    Réponses: 2
    Dernier message: 12/06/2010, 03h53
  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, 14h10
  4. Besoin d'aide pour faire une requête
    Par Gau28 dans le forum Requêtes
    Réponses: 6
    Dernier message: 12/09/2009, 09h26
  5. problème pour faire une requête
    Par mitchbuck dans le forum Langage SQL
    Réponses: 2
    Dernier message: 08/11/2005, 22h48

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