Maven 2 Exemple MySQL avec Hibernate 3.2 (mappage XML)

Maven 2 + Hibernate 3.2 + Exemple MySQL (mappage XML)

Note
Cet article est obsolète, veuillez vous référer au dernier tutoriel Hibernate 3.6 à -Maven 3 + Hibernate 3.6 + Oracle 11g Example (XML Mapping).

Ce guide rapide vous montre comment utiliser Maven pour générer un projet Java simple et utilise Hibernate pour insérer un enregistrement dans la base de données MySQL.

Outils et technologies utilisés dans cet article:

  1. Maven 2.2.1

  2. JDK 1.6.0_13

  3. Hibernate 3.2.3.GA

  4. MySQL 5.0

1. Création de table

Script MySQL pour créer une table «stock».

DROP TABLE IF EXISTS `stock`;
CREATE TABLE `stock` (
  `STOCK_ID` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
  `STOCK_CODE` VARCHAR(10) NOT NULL,
  `STOCK_NAME` VARCHAR(20) NOT NULL,
  PRIMARY KEY (`STOCK_ID`) USING BTREE,
  UNIQUE KEY `UNI_STOCK_NAME` (`STOCK_NAME`),
  UNIQUE KEY `UNI_STOCK_ID` (`STOCK_CODE`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

2. Générer une structure de projet avec Maven

Dans l’invite de commande, émettez «mvn archetype:generate», choisissez le projet n ° 15 pour créer un projet java de démarrage rapide de Maven, puis remplissez les informations de votre projet - groupId, artifactId et package.

E:\workspace>mvn archetype:generate
[INFO] Scanning for projects...
...
Choose a number:
(1/2/3....) 15: : 15
...
Define value for groupId: : com.example.common
Define value for artifactId: : HibernateExample
Define value for version:  1.0-SNAPSHOT: :
Define value for package:  com.example.common: : com.example.common
[INFO] OldArchetype created in dir: E:\workspace\HibernateExample
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------------

3. Convertir en projet Eclipse

Émettez «mvn eclipse:eclipse» pour convertir le projet nouvellement généré en projet de style Eclipse

4. Importer un projet converti dans Eclipse IDE

Dans Eclipse IDE, choisissez Fichier -> Importer -> Dossier général, Projets existants dans Workspace -> Choisissez l'emplacement du dossier de votre projet. Done

5. Créer un dossier de ressources

Créez un dossier de ressources sous le dossier «src/main», «/src/main/resources», plus tard, tous les fichiers xml d’Hibernate seront placés ici. Maven traitera tous les fichiers de ce dossier comme des fichiers de ressources et les copiera automatiquement dans les classes de sortie.

6. Revoir la structure du projet

Assurez-vous que la structure des dossiers comme suit

hibernate-example-1

Maven générera pour vous toute la structure de dossiers standard de Java (à côté du dossier de ressources, l'archétype de démarrage rapide # 15 ne contient pas le dossier de ressources)

7. Ajouter une dépendance Hibernate et MySQL

Modifiez le fichierpom.xml de Maven, ajoutez la prise en charge de Hibernate et MySQL. Hibernate est requis dom4j, commons-logging, commons-collections et cglib comme bibliothèque de dépendances, ajoutez-le.

Fichier: pom.xml


4.0.0
  com.example.common
  HibernateExample
  jar
  1.0-SNAPSHOT
  HibernateExample
  http://maven.apache.org
  

    
      junit
      junit
      3.8.1
      test
    

        
    
        mysql
        mysql-connector-java
        5.1.9
    

    
    
        hibernate
        hibernate3
        3.2.3.GA
    


    
    
        dom4j
        dom4j
        1.6.1
    

    
        commons-logging
        commons-logging
        1.1.1
    

    
        commons-collections
        commons-collections
        3.2.1
    

    
        cglib
        cglib
        2.2
    
    

    
        javax.transaction
        jta
        1.1
    

  

Émettez le «mvn eclipse:eclipse», Maven téléchargera automatiquement toutes les bibliothèques Hibernate et MySQL et les placera dans le référentiel local de Maven. En même temps, Maven ajoutera les bibliothèques téléchargées dans Eclipse «.classpath» à des fins de dépendance. Aimez-le à nouveau :), pas besoin de trouver la bibliothèque et de la copier moi-même.

8. Créer un fichier de mappage Hibernate + classe de modèle

Au préalable, une table nommée «stock» est créée, vous devez maintenant créer un fichier de mappage XML Hibernate et une classe de modèle pour elle.

Créez un fichierStock.hbm.xml et placez-le dans «src/main/resources/com/example/common/Stock.hbm.xml». Créez le dossier «resources / com / example / common /» s'il n'existe pas.

Fichier: Stock.hbm.xml




    
        
            
            
        
        
            
        
        
            
        
    

Créez un fichier Stock.java et placez-le dans «src/main/java/com/example/common/Stock.java»

Fichier: Stock.java

package com.example.common;

/**
 * Model class for Stock
 */
public class Stock implements java.io.Serializable {

    private static final long serialVersionUID = 1L;

    private Integer stockId;
    private String stockCode;
    private String stockName;

    public Stock() {
    }

    public Stock(String stockCode, String stockName) {
        this.stockCode = stockCode;
        this.stockName = stockName;
    }

    public Integer getStockId() {
        return this.stockId;
    }

    public void setStockId(Integer stockId) {
        this.stockId = stockId;
    }

    public String getStockCode() {
        return this.stockCode;
    }

    public void setStockCode(String stockCode) {
        this.stockCode = stockCode;
    }

    public String getStockName() {
        return this.stockName;
    }

    public void setStockName(String stockName) {
        this.stockName = stockName;
    }

}

Note
Créer la classe de modèle et les fichiers de mappage sont assez fastidieux dans les grandes applications, avec les outils Hibernate, cela peut être généré automatiquement, consultez cet article -Hibernate tools to generate it automatically.

9. Créer un fichier de configuration de mise en veille prolongée

Créez un fichier de configuration Hibernate et placez-le dans le dossier racine des ressources, «src/main/resources/hibernate.cfg.xml». Remplissez votre paramètre MySQL en conséquence.

Fichier: hibernate.cfg.xml



    
        false
        com.mysql.jdbc.Driver
        password
        jdbc:mysql://localhost:3306/example
        root
        org.hibernate.dialect.MySQLDialect
        true
        
    

Définissez la propriété «show_sql» sur true pour générer l'instruction Hibernate SQL. Hibernate Dialect indique à votre application Hibernate quel SQL elle doit générer pour parler à votre base de données. Veuillez consulter cet article pour un autre dialecte de base de données -Hibernate dialect collection.

10. Créer une classe d'utilitaire Hibernate

Créez une classe HibernateUtil.java pour prendre en charge le démarrage d'Hibernate et récupérer facilement la session. Créez un dossier de persistance et placez-y ce fichier, «src/main/java/com/example/persistence/HibernateUtil.java»

Fichier: HibernateUtil.java

package com.example.persistence;

import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;

public class HibernateUtil {

    private static final SessionFactory sessionFactory = buildSessionFactory();

    private static SessionFactory buildSessionFactory() {
        try {
            // Create the SessionFactory from hibernate.cfg.xml
            return new Configuration().configure().buildSessionFactory();
        }
        catch (Throwable ex) {
            // Make sure you log the exception, as it might be swallowed
            System.err.println("Initial SessionFactory creation failed." + ex);
            throw new ExceptionInInitializerError(ex);
        }
    }

    public static SessionFactory getSessionFactory() {
        return sessionFactory;
    }

    public static void shutdown() {
        // Close caches and connection pools
        getSessionFactory().close();
    }

}

11. Revoir la structure du projet

Sonnez comme créer de nombreux nouveaux fichiers et dossiers, examinez-les et assurez-vous que la structure des dossiers est la suivante

hibernate-example-2

12. Codez-le pour sauvegarder l'enregistrement

Modifiez la classe App.java par défaut comme suit:

Fichier: App.java

package com.example.common;

import org.hibernate.Session;
import com.example.persistence.HibernateUtil;

public class App
{
    public static void main( String[] args )
    {
        System.out.println("Maven + Hibernate + MySQL");
        Session session = HibernateUtil.getSessionFactory().openSession();

        session.beginTransaction();
        Stock stock = new Stock();

        stock.setStockCode("4715");
        stock.setStockName("GENM");

        session.save(stock);
        session.getTransaction().commit();
    }
}

13. Exécutez-le et voyez la sortie

Exécutez votre App.java, il insérera un nouvel enregistrement dans la table "Stock".

Maven + Hibernate + MySQL
...
Dec 17, 2009 5:05:26 PM org.hibernate.impl.SessionFactoryObjectFactory addInstance
INFO: Not binding factory to JNDI, no JNDI name configured
Hibernate: insert into example.stock (STOCK_CODE, STOCK_NAME) values (?, ?)

Terminé.

Téléchargez-le -Maven_Hibernate_MySQL_Example.zip (12kb)