Hibernate [Partie 2]: configuration et utilisation

Dernière mise à jour le 30 octobre 2009 à 14:53 par marlalapocket
Publié par n00r

Voir la première partie de l'astuce Hibernate (Partie 1): Présentation



configuration et utilisation de Hibernate


Configuration Hibernate dans une application JAVA

  • Installer JDK 1.4 ou JDK 1.5
  • télécharger la version3 à partir de [www.hibernate.org]
  • Référencer les jars Hibernate dans le classpath.
    • Définir le fichier de configuration Hibernate hibernate.cfg.xml :

Ce fichier est recommandé d’être placé sur le répertoire contenant le code source (source JAVA) de l’application JAVA.

Ci-dessous un exemple de fichier hibernate.cfg.xml avec les commentaires nécessaires :

<?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.url">jdbc:oracle:thin:@dbServer:1521:db</property> 
		<property name="hibernate.connection.driver_class">oracle.jdbc.OracleDriver</property>
        	<property name="dialect">org.hibernate.dialect.Oracle9Dialect</property>
		<property name="hibernate.connection.username">dbusername</property>
		<property name="hibernate.connection.password">dbpassword</property>
		
 			
		<!-- Configuration hibernate -->
       		 <property name="show_sql">true</property>
		<property name="format_sql">true</property>  
       		 <property name="hibernate.use_outer_join">true</property>
		<property name="hibernate.query.substitutions">1</property>
		<property name="hibernate.connection.autocommit">false</property>
		<property name="hibernate.jdbc.batch_size">50</property>
		<property name="hibernate.jdbc.use_get_generated_keys">true</property>

		
		<!-- Pool de connexion : ici C3P0 qui est déclaré -->
		<property name="hibernate.connection.provider_class">org.hibernate.connection.C3P0ConnectionProvider</property>
		<property name="hibernate.c3p0.acquire_increment">3</property> 
		<property name="hibernate.c3p0.idle_test_period">180</property> 
		<property name="hibernate.c3p0.max_size">100</property> 
		<property name="hibernate.c3p0.min_size">10</property> 
		<property name="hibernate.c3p0.timeout">1000</property>
		
		 <!—désactiver la cache  deuxième niveau -->
		<property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property>

				
		
		
		<!—Liste des fichiers de Mapping hbm -->
		<mapping resource="com/org/client/mapping/Client.hbm.xml"/>
		
		
	</session-factory>
  </hibernate-configuration>



*
    • Définir les fichiers de mapping hbm:

C’est un ensemble de fichiers qui fait le mapping entre l’entité de base de données et l’objet JAVA de persistence associé.
Les chemins complets de tous les fichiers de mapping hbm sont décrits dans le fichier de configuration hibernate.cfg.xml. (voir exemple du fichier de configuration ci-dessus)

Utilisation de Hibernate dans une application JAVA :


Dans l’exemple d’utilisation nous allons nous reposer sur l'exemple du fichier de configuration Hibernate ci-dessus
  • Déclaration de la table  (Oracle) :


CREATE TABLE CLIENT
(
	  ID_Client NUMBER(10) NOT NULL,
	  TITRE VARCHAR2(10),
	  NOM VARCHAR2(30),	  
	  REMISE NUMBER(19,5),
	  CA NUMBER(19,5),
	  CONSTRAINT PK_CLIENT PRIMARY KEY (CLIENT_ID)
);
  • Déclaration des classes JAVA de persistence :

/** constructeur par défaut */

public Client() {
}

/** Constructeur complet **/
public Client(Long clientId, String titre, String nom, BigDecimal remise, BigDecimal ca)
{
this.idClient = idClient;
this.titre = titre;
this.name = name;
this.remise = remise;
this.ca = ca;
}

/** Les getters et setters**/
public Long getIdClient()
{
return this.clientId;
}
public void setIdClient (Long clientId) {
this.clientId = clientId;
}
public String getTitre() {
return this.titre;
}
public void setTitre(String titre) {
this.titre = titre;
}
public String getNom() {
return this.nom;
}
public void setNom(String nom) {
this.nom = nom;
}
public BigDecimal getRemise() {
return this.remise;
}
public void setRemise(BigDecimal remise) {
this.remise = remise;
}
public BigDecimal getCa() {
return this.ca;
}
public void setCa(BigDecimal ca) {
this.ca = ca;
}
}
  • Fichier de Mapping Client.hbm.xml :


<?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="[Nom_Package].Client" 
    table="CLIENT"
         entity-name="Client"
>	
    <meta attribute="class-description" inherit="false">
       @hibernate.class
        table="CLIENT"
    </meta>

    <id
        name="idClient"
        type="java.lang.Long"
        column="ID_CLIENT"
    >
		    <meta attribute="field-description" inherit="false">
		       Id du client
		    </meta>
    
        <meta attribute="field-description">
           @hibernate.id
            generator-class="assigned"
            type="java.lang.Long"
            column="CLIENT_ID"

        </meta>
        <generator class="increment" />
    </id>

    <property
        name="titre"
        type="java.lang.String"
        column="TITRE"
        length="10"
    >
		    <meta attribute="field-description" inherit="false">
		       Titre du client
		    </meta>
        <meta attribute="field-description">
           @hibernate.property
            column="TITRE"
            length="10"
        </meta>    
    </property>
    <property
        name="name"
        type="java.lang.String"
        column="NAME"
        length="30"
    >
		    <meta attribute="field-description" inherit="false">
		       Nom du client
		    </meta>
        <meta attribute="field-description">
           @hibernate.property
            column="NAME"
            length="30"
        </meta>    
    </property>

    <property
        name="remise"
        type="java.math.BigDecimal"
        column="REMISE"
        length="19"
    >
		    <meta attribute="field-description" inherit="false">
		       Remise du client
		    </meta>
        <meta attribute="field-description">
           @hibernate.property
            column="REMISE"
            length="19"
        </meta>    
    </property>
    <property
        name="ca"
        type="java.math.BigDecimal"
        column="CA"
        length="19"
    >
		    <meta attribute="field-description" inherit="false">
		       Chiffre Affaire
		    </meta>


</class>
</hibernate-mapping>

La clé primaire est définie dans la balise <id> : dans l’exemple, elle est basée sur une séquence. Il est possible de définir une clé composée en utilisant la balise <composite-id> :
	<composite-id>
      	<key-property name="attribut1"/>
     	 	<key-property name="attribut2"/>
	</composite-id>
  • Sauvegarde d’un nouvel objet dans la base de données :


L’exemple ci-dessous utilise la méthode saveOrUpdate() de la session hibernate.
org.hibernate.Session sess = sessFact.openSession();
Client c = new Client();
c.setName("John");
p.setTitre("Mr");
Transaction tx = sess.beginTransaction();
sess.saveOrUpdate(p);
tx.commit();
sess.close();
Meilleures réponses pour « Hibernate : configuration et utilisation » dans :
L'autocomplétion C/C++ sous vim VoirAuto-complétion sous ViM Introduction Installation Configuration Utilisation Liens Ce tutoriel s'adresse aux personnes qui utilisent Vim sous windows ou Linux. Ici, je vais plutôt orienter le tutoriel pour les personnes sous...
[XP] Windows ne peut pas configurer cette connexion sans fil VoirSi vous avez le message d'erreur suivant : Windows ne peut pas configurer cette connexion sans fil, si vous avez autorisé un autre programme à gérer cette connexion sans fil, utilisez ce programme, si vous voulez que windows configure cette...
Configurer sa connexion WiFi avec Windows XP VoirDepuis Windows XP, Microsoft a intégré à son système d'exploitation un agent WiFi, baptisé par la firme "Configuration Zéro". Dans un premier temps et pour l'utiliser convenablement, il est tout d'abord nécessaire de désactiver les autres logiciels...
Introduction à Linux VoirHistorique et génèse de Linux Linus B.Torvalds est à l'origine de ce système d'exploitation entièrement libre. Au début des années 90, il voulait mettre au point son propre système d'exploitation pour son projet de fin d'étude. Linus Torvalds...
Linux - Gestion des utilisateurs VoirPremier pas de l'administrateur Lorsque diverses personnes ont accès à un système, il est nécessaire que l'administrateur système gère les utilisateurs. Pour ceci, les commandes usuelles et les fichiers à configurer doivent être connus. Les...
Windows 7 - Gestion des utilisateurs VoirConfigurez votre PC Comme avec Windows Vista, vous pouvez avec Windows 7 bénéficier d’un environnement de travail bien à vous, tel que vous l’avez défini et personnalisé. Ce travail de configuration et de réglage passe par l’utilisation des comptes...
Collection CommentÇaMarche.net