Premier TD JPA
Téléchargements.
Les logiciels nécessaires sont :
Hibernate version 4.01 final en tar.gz.
Squirrel installer dernière version pour Linux
Installation.
Défaire l'archive Hibernate par tar zxvf.
Lancer l'installeur de Squirrel par :
export JAVA_HOME=/opt/java/jdk....
export JRE_HOME=$JAVA_HOME/jre
export PATH=$JAVA_HOME/bin:$PATH
java -jar squirrel-sql......jar
Lancer le SGBDR Derby en mode client-serveur.
cp startEclipse.sh startDerby.sh
vi startDerby.sh
supprimer la ligne :
/opt/eclipse/eclipse &
ajouter les 2 lignes :
export DERBY_HOME=$JAVA_HOME/db
$DERBY_HOME/bin/startNetworkServer &
Lancer le navigateur universel de SGBDR.
cp startEclipse.sh startSquirrel.sh
vi startSquirrel.sh
supprimer la ligne :
/opt/elcipe/eclipse &
ajouter les 2 lignes :
/chemin jusqu'à l'installation de squirrel/squirrel-sql.sh &
JJLC 1/3
Configurer le projet Eclipse.
Lancer Eclipse. Créer un nouveau projet java. Sur le nom du projet clic droit et aller sur le choix
properties. Choisir java build path. Puis par des add external jars successifs ajouter les librairies :
dans le jdk1.6.0_27/db/lib
la librairie derbyclient.jar
dans le répertoire hibernate/lib
les librairies du répertoire jpa/ et du répertoire required/.
Sous le répertoire src/, créer le répertoire (folder) META-INF
Dans le répertoire META-INF créer le fichier (file) persistence.xml.
Faire un copier-coller à partir de la documentation hibernate du contenu du fichier.
<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="toto" transaction-type="RESOURCE_LOCAL">
<class>modele.Etudiant</class>
<properties>
<property name="javax.persistence.jdbc.driver" value="org.apache.derby.jdbc.ClientDriver"/>
<property name="javax.persistence.jdbc.user" value="derby"/>
<property name="javax.persistence.jdbc.password" value="derby"/>
<property name="javax.persistence.jdbc.url" value="jdbc:derby://localhost:1527/totoDB;create=true"/>
<property name="hibernate.dialect" value="org.hibernate.dialect.DerbyDialect"/>
</properties>
</persistence-unit>
</persistence>
Création de la classe persistante de l'exercice.
@Entity
public class Etudiant {
public Etudiant(int numero, String nom, Date datenais, int age) {
super();
this.numero = numero;
this.nom = nom;
this.datenais = datenais;
this.age = age;
}
public Etudiant() {
super();
}
@Id
private int numero;
private String nom;
private Date datenais;
@Transient
private int age;
... ajouter les get&set
JJLC 2/3
Création de la classe Main qui crée un étudiant et le rend persistant.
public class Test {
public static void main(String[] args) {
EntityManagerFactory emf = Persistence.createEntityManagerFactory("toto");
EntityManager em = emf.createEntityManager();
em.getTransaction().begin();
Etudiant e = new Etudiant(2001, "Odyssee", new Date(), 55);
em.persist(e);
em.getTransaction().commit();
em.close();
emf.close();
Création de la table étudiant.
Lancer Derby par son script. L'écho du démarrage doit indiquer le port 1527.
Lancer Squirrel par son script puis configurer un squelette de connexion JDBC.
Ajouter le driver JDBC à la configuration (onglet extra classpath).
Créer un alias de connexion qui reprend le squelette ci-dessus.
Lancer la connexion.
Créer la table etudiant (onglet SQL) :
create table etudiant(numero integer primary key, nom varchar(32), datenais date)
Test du programme.
Lancer le Main. Puis aller vérifier dans squirrel que la table s'est bien remplie avec l'état de l'objet
étudiant créé dans le programme. Onglet Objects puis onglet content.
JJLC 3/3
1 / 3 100%