commit 150038422c71a339130e352a291cc4e83cffb866 Author: Olivier Barais Date: Wed Sep 10 10:58:37 2025 +0200 Initial commit diff --git a/README.md b/README.md new file mode 100644 index 0000000..d4d8562 --- /dev/null +++ b/README.md @@ -0,0 +1 @@ +# Template de projet pour le TP JPA UniR diff --git a/hsqldb-2.7.2.jar b/hsqldb-2.7.2.jar new file mode 100644 index 0000000..1338739 Binary files /dev/null and b/hsqldb-2.7.2.jar differ diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..0949edc --- /dev/null +++ b/pom.xml @@ -0,0 +1,37 @@ + + + 4.0.0 + test + testjpa + 0.0.1-SNAPSHOT + + + 11 + 11 + + + + + org.hibernate + hibernate-core + 6.2.7.Final + + + org.slf4j + slf4j-log4j12 + 1.7.30 + + + org.hsqldb + hsqldb + 2.7.2 + + + com.mysql + mysql-connector-j + 8.1.0 + + + diff --git a/run-hsqldb-server.bat b/run-hsqldb-server.bat new file mode 100755 index 0000000..c659c11 --- /dev/null +++ b/run-hsqldb-server.bat @@ -0,0 +1,3 @@ +mkdir data +cd data +java -cp ..\hsqldb-2.7.2.jar org.hsqldb.Server diff --git a/run-hsqldb-server.sh b/run-hsqldb-server.sh new file mode 100755 index 0000000..5fc9a89 --- /dev/null +++ b/run-hsqldb-server.sh @@ -0,0 +1,4 @@ +mvn dependency:copy-dependencies +mkdir data 2> /dev/null +cd data +java -cp ../target/dependency/hsqldb-2.7.2.jar org.hsqldb.Server diff --git a/show-hsqldb.bat b/show-hsqldb.bat new file mode 100755 index 0000000..1e1c01b --- /dev/null +++ b/show-hsqldb.bat @@ -0,0 +1,2 @@ +java -cp hsqldb-2.7.2.jar org.hsqldb.util.DatabaseManagerSwing --driver org.hsqldb.jdbcDriver --url jdbc:hsqldb:hsql://localhost/ --user SA + diff --git a/show-hsqldb.sh b/show-hsqldb.sh new file mode 100755 index 0000000..7e6fa86 --- /dev/null +++ b/show-hsqldb.sh @@ -0,0 +1,2 @@ +#mvn dependency:copy-dependencies +java -cp hsqldb-2.7.2.jar org.hsqldb.util.DatabaseManagerSwing --driver org.hsqldb.jdbcDriver --url jdbc:hsqldb:hsql://localhost/ --user SA diff --git a/src/main/java/jpa/EntityManagerHelper.java b/src/main/java/jpa/EntityManagerHelper.java new file mode 100644 index 0000000..db7a246 --- /dev/null +++ b/src/main/java/jpa/EntityManagerHelper.java @@ -0,0 +1,50 @@ +package jpa; + +import jakarta.persistence.EntityManager; +import jakarta.persistence.EntityManagerFactory; +import jakarta.persistence.Persistence; + +public class EntityManagerHelper { + + private static final EntityManagerFactory emf; + private static final ThreadLocal threadLocal; + + static { + emf = Persistence.createEntityManagerFactory("dev"); + threadLocal = new ThreadLocal(); + } + + public static EntityManager getEntityManager() { + EntityManager em = threadLocal.get(); + + if (em == null) { + em = emf.createEntityManager(); + threadLocal.set(em); + } + return em; + } + + public static void closeEntityManager() { + EntityManager em = threadLocal.get(); + if (em != null) { + em.close(); + threadLocal.set(null); + } + } + + public static void closeEntityManagerFactory() { + emf.close(); + } + + public static void beginTransaction() { + getEntityManager().getTransaction().begin(); + } + + public static void rollback() { + getEntityManager().getTransaction().rollback(); + } + + public static void commit() { + getEntityManager().getTransaction().commit(); + } +} \ No newline at end of file diff --git a/src/main/java/jpa/JpaTest.java b/src/main/java/jpa/JpaTest.java new file mode 100644 index 0000000..d11049f --- /dev/null +++ b/src/main/java/jpa/JpaTest.java @@ -0,0 +1,42 @@ +package jpa; + + +import jakarta.persistence.EntityManager; +import jakarta.persistence.EntityTransaction; + +public class JpaTest { + + + private EntityManager manager; + + public JpaTest(EntityManager manager) { + this.manager = manager; + } + /** + * @param args + */ + public static void main(String[] args) { + EntityManager manager = EntityManagerHelper.getEntityManager(); + + JpaTest test = new JpaTest(manager); + + EntityTransaction tx = manager.getTransaction(); + tx.begin(); + try { + + // TODO create and persist entity + } catch (Exception e) { + e.printStackTrace(); + } + tx.commit(); + + + manager.close(); + EntityManagerHelper.closeEntityManagerFactory(); + System.out.println(".. done"); + } + + + + +} diff --git a/src/main/resources/META-INF/persistence.xml b/src/main/resources/META-INF/persistence.xml new file mode 100644 index 0000000..7277b7d --- /dev/null +++ b/src/main/resources/META-INF/persistence.xml @@ -0,0 +1,67 @@ + + + + + org.hibernate.jpa.HibernatePersistenceProvider + + + + + + + + + + + + org.hibernate.jpa.HibernatePersistenceProvider + + + + + + + + + + + + + + org.hibernate.jpa.HibernatePersistenceProvider + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/log4j.properties b/src/main/resources/log4j.properties new file mode 100644 index 0000000..e01f9db --- /dev/null +++ b/src/main/resources/log4j.properties @@ -0,0 +1,15 @@ +----------------------------------------------log4j.properties + +### direct log messages to stdout +### +log4j.rootLogger=INFO, stdout +log4j.appender.stdout=org.apache.log4j.ConsoleAppender +log4j.appender.stdout.Target=System.out +log4j.appender.stdout.layout=org.apache.log4j.PatternLayout +log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n + +# Log everything. Good for troubleshooting +log4j.logger.org.hibernate=ERROR + +# Log all JDBC parameters +log4j.logger.org.hibernate.type=ERROR