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:
-
Maven 2.2.1
-
JDK 1.6.0_13
-
Hibernate 3.2.3.GA
-
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
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
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)