Sommaire
Sommaire
<<

Hibernate JPA : configurer  il y a 3 années

Auteur

Hachim IDRISSI YASSINE, de ProfLibre.

Série

HIBERNATE : l’essentiel

Description

L’objectif de cette formation est de savoir comment télécharger une version spécifique d’Hibernate et de configurer son premier projet en utilisant l’API JPA.

Tags

I. Introduction

L’objectif de cette formation est de savoir comment télécharger une version spécifique d’Hibernate et de configurer son premier projet en utilisant l’APIJPA avec MySQL.

Requête SQL jouée à la fin

II. Prérequis

Des connaissances en :

  • JAVA/JDBC
  • SQL (MYSQL)
  • XML
  • JPA
  • UML est un plus.

Ayant consulté la formation précédente dans la même série.

III. Outils

  • Hibernate 5.3.5
  • JAVA 8
  • Eclipse (OXYGEN 2)
  • MYSQL 5.7.26 (PHPMYADMIN sur MAMP 5.7)
  • Connecteur MYSQL-JAVA (Connector/J) 8.0.20
  • MAC OS 10.11.5 (OS X EL CAPITAN)

NB : cette formation pourra être utile pour d’autres versions.

IV. La base d’abord !

Sur MYSQL :

Créez la base hibernatenative via l’IHM :   

Créer la base MySQL

Ou via la commande SQL :

create database if not exists hibernatenative;

V. Trouver et télécharger le bon pilote

      1. Trouver le bon pilote

                 - Pilote = Driver = Connecteur

                 - Accédez au site officiel de MYSQL :

                    https://dev.mysql.com/

                 - Cliquez ensuite sur le menu Documentation :

                    https://dev.mysql.com/doc/

                 - Cliquez sur Connectors :

                    https://dev.mysql.com/doc/index-connectors.html

                 - Accédez au dernier connecteur à date et vérifier la compatibilité des versions (MYSQL/JAVA) :

                    https://dev.mysql.com/doc/connector-j/8.0/en/

                 - Dans la table des matière, cliquez sur Connector/J Versions, and the MySQL and Java Versions They Require :

                    https://dev.mysql.com/doc/connector-j/8.0/en/connector-j-versions.html

                 NB : dans notre cas nous avons sélectionné le dernier connecteur qui est compatible à la fois avec la version du serveur MYSQL qu‘on utilise et la version de JAVA utilisée, sinon chercher dans                               l’archive sur le même site.

                 Connector/J : connecteur JAVA pour MYSQL.

      2. Télécharger le pilote

                 - Dans la table des matières, cliquez sur le menu Connector/J Installation :

                   https://dev.mysql.com/doc/connector-j/8.0/en/connector-j-installing.html

                 - Cliquez ensuite sur Connector/J Download page :

                   https://dev.mysql.com/downloads/connector/j/

                 - Choisissez le SE (Plateform Intependant), puis cliquez sur download (zip), puis No thanks, just start my download :

                  mysql-connector-java-8.0.20.zip

                  - Après extraction, on trouve dedans le fichier JAR cherché:

                  mysql-connector-java-8.0.20.jar

 

VI. Télécharger Hibernate

         - Rendez-vous sur :
            https://hibernate.org/orm/releases/

         - Choisir la version 5.3 :

            https://hibernate.org/orm/releases/5.3/

         - Puis la version 5.3.5 dans la même page.

         - Cliquez ensuite sur Download.

         Remarque : on utilisera Maven ultérieurement dans d’autres formations sur proflibre.com.

VII. Créer son projet JAVA

      1. Créer le projet

                 - Ouvrir Eclipse

                 - New > Project > JAVA Project

                 - Donnez un nom à votre projet.

                 - Choisissez JAVA 1.8

      2. Importer le pilote

                 - Bouton droit sur le projet :

                  > Properties

                  > JAVA BUILD PATH

                  > Add JAR : mysql-connector-java-8.0.20.jar

      3. Ajouter la librairie Hibernate

                 - Bouton droit sur le projet :

                  > Properties

                  > JAVA BUILD PATH

                  > Add Library

                  > User Library > User libraries… > New Library > Hibernatev5.3.5 > Add External JARs

      4. Remplir la fiche de configuration META-INF/persistence.xml

PropriétéValeurNotes
connection.pool_size1Nombre maximal de connexions dans le pool.
hibernate.show_sqltrueActiver la journalisation de toutes les requêtes SQL générées sur la console.
hibernate.format_sqltrueRendre les requêtes plus lisibles (occupent plus d’espaces sur la console).
use_sql_commentstrueCommentaires pour faire la correspondance entre les requêtes objets et les requêtes SQL.
hibernate.hbm2ddl.autoupdateValeurs possibles : none (par défaut), create-only, drop, create, create-drop, validate, et update.
  • META-INF/persistence.xml :
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"
        version="2.0">
	<persistence-unit name="myunit">
		<provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
		<properties>
			<property name="hibernate.connection.pool_size" value="10"></property>
			<property name="hibernate.show_sql" value="true"></property>
			<property name="hibernate.format_sql" value="true"></property>
			<property name="hibernate.use_sql_comments" value="true"></property>
			<property name="hibernate.hbm2ddl.auto" value="update"></property>
		</properties>
	</persistence-unit>
</persistence>

      5. Remplir la fiche de configuration hibernate.properties

PropriétéValeurNotes
hibernate.dialectorg.hibernate.dialect.MySQL5DialectChercher le package org.hibernate.dialect ensuite MYSQL dans https://docs.jboss.org/hibernate/orm/5.3/javadocs/
hibernate.connection.driver_classcom.mysql.cj.jdbc.Driver

Chercher dans la documentation du SGBD utilisé, pour MYSQL :

https://dev.mysql.com/doc/connector-j/8.0/en/connector-j-usagenotes-connect-drivermanager.html

+ L’url  JDBC de la BD.
hibernate.connection.url
hibernate.connection.urljdbc:mysql://localhost:8889/hibernatenative
hibernate.connection.usernamerootNom de l’utilisateur de la BD
Hibernate.connection.passwordrootMot de passe de la BD.
  • src/hibernate.properties :
hibernate.dialect=org.hibernate.dialect.MySQL5Dialect
hibernate.connection.driver_class=com.mysql.cj.jdbc.Driver
hibernate.connection.url=jdbc:mysql://localhost:8889/hibernatenative?serverTimezone=UTC
hibernate.connection.username=root
hibernate.connection.password=root

                   NB : le port par défaut de MySQL 3306 est très utilisé aussi.

      6. Créer sa première classe JAVA/Hibernate "PlayHibernateJPA.java"

package com.proflibre.hachim;

import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;

public class PlayHibernateJPA {
	
	public static EntityManagerFactory entityManagerFactory;

	public static void main(String[] args) {
		entityManagerFactory = Persistence.createEntityManagerFactory("myunit");
		
		//TRAITEMENT
		EntityManager entityManager = entityManagerFactory.createEntityManager();
		entityManager.createNativeQuery("SELECT 100 FROM DUAL").getSingleResult();
		//FIN TRAITEMENT
		
		if(entityManagerFactory != null) entityManagerFactory.close();

	}

}

VIII. Résultat d’exécution :

Après exécution de la classe PlayHibernateJPA.java, voici la journalisation (log) obtenue sur la console d’Eclipse :

Résultat d’exécution

Conclusion

Dans l’étape suivante, nous allons découvrir comment configurer les entités avec l’API JPA.

 

Prise de notes

Vous seul vous pouvez voir vos notes.

Mes notes

Commentaires

 il y a 3 années
Hachim IDRISSI YASSINE [L'auteur] : N’hésitez pas à poser des questions ou nous faire part de vos remarques.
Vos retours nous intéressent.
 il y a 3 années
Hachim IDRISSI YASSINE [L'auteur] : Les propriétés de connexion à la base peuvent être déclarées dans META-INF/persistence.xml plus précisément dans le tag <properties> à l’intérieur de <persistence-unit> :
<property name="javax.persistence.jdbc.driver" value="com.mysql.cj.jdbc.Driver" />
<property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:8889/hibernatenative?serverTimezone=UTC" />
<property name="javax.persistence.jdbc.user" value="root" />
<property name="javax.persistence.jdbc.password" value="root" />

Formations similaires

Etes-vous intéressé par nos dernières formations ?

back to top
contactez-nous
Fermer