Initial commit
This commit is contained in:
BIN
hsqldb-2.7.2.jar
Normal file
BIN
hsqldb-2.7.2.jar
Normal file
Binary file not shown.
37
pom.xml
Normal file
37
pom.xml
Normal file
@@ -0,0 +1,37 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>test</groupId>
|
||||
<artifactId>testjpa</artifactId>
|
||||
<version>0.0.1-SNAPSHOT</version>
|
||||
|
||||
<properties>
|
||||
<maven.compiler.source>11</maven.compiler.source>
|
||||
<maven.compiler.target>11</maven.compiler.target>
|
||||
</properties>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.hibernate</groupId>
|
||||
<artifactId>hibernate-core</artifactId>
|
||||
<version>6.2.7.Final</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.slf4j</groupId>
|
||||
<artifactId>slf4j-log4j12</artifactId>
|
||||
<version>1.7.30</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.hsqldb</groupId>
|
||||
<artifactId>hsqldb</artifactId>
|
||||
<version>2.7.2</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.mysql</groupId>
|
||||
<artifactId>mysql-connector-j</artifactId>
|
||||
<version>8.1.0</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</project>
|
||||
3
run-hsqldb-server.bat
Executable file
3
run-hsqldb-server.bat
Executable file
@@ -0,0 +1,3 @@
|
||||
mkdir data
|
||||
cd data
|
||||
java -cp ..\hsqldb-2.7.2.jar org.hsqldb.Server
|
||||
4
run-hsqldb-server.sh
Executable file
4
run-hsqldb-server.sh
Executable file
@@ -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
|
||||
2
show-hsqldb.bat
Executable file
2
show-hsqldb.bat
Executable file
@@ -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
|
||||
|
||||
2
show-hsqldb.sh
Executable file
2
show-hsqldb.sh
Executable file
@@ -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
|
||||
50
src/main/java/jpa/EntityManagerHelper.java
Normal file
50
src/main/java/jpa/EntityManagerHelper.java
Normal file
@@ -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<EntityManager> threadLocal;
|
||||
|
||||
static {
|
||||
emf = Persistence.createEntityManagerFactory("dev");
|
||||
threadLocal = new ThreadLocal<EntityManager>();
|
||||
}
|
||||
|
||||
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();
|
||||
}
|
||||
}
|
||||
42
src/main/java/jpa/JpaTest.java
Normal file
42
src/main/java/jpa/JpaTest.java
Normal file
@@ -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");
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
67
src/main/resources/META-INF/persistence.xml
Normal file
67
src/main/resources/META-INF/persistence.xml
Normal file
@@ -0,0 +1,67 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<persistence xmlns="https://jakarta.ee/xml/ns/persistence"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="https://jakarta.ee/xml/ns/persistence https://jakarta.ee/xml/ns/persistence/persistence_3_0.xsd"
|
||||
version="3.0">
|
||||
|
||||
<persistence-unit name="dev" transaction-type="RESOURCE_LOCAL">
|
||||
<provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
|
||||
<properties>
|
||||
<property name="jakarta.persistence.jdbc.driver"
|
||||
value="org.hsqldb.jdbcDriver" />
|
||||
<property name="jakarta.persistence.jdbc.url"
|
||||
value="jdbc:hsqldb:hsql://localhost/" />
|
||||
<property name="jakarta.persistence.jdbc.user" value="sa" />
|
||||
<property name="jakarta.persistence.jdbc.password" value="" />
|
||||
<property
|
||||
name="jakarta.persistence.schema-generation.database.action"
|
||||
value="create" />
|
||||
<property name="jakarta.persistence.dialect"
|
||||
value="org.hibernate.dialect.HSQLDialect" />
|
||||
<property name="hibernate.show_sql" value="true" />
|
||||
</properties>
|
||||
</persistence-unit>
|
||||
<persistence-unit name="prod" transaction-type="RESOURCE_LOCAL">
|
||||
<provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
|
||||
<properties>
|
||||
<property name="jakarta.persistence.jdbc.driver"
|
||||
value="org.hsqldb.jdbcDriver" />
|
||||
<property name="jakarta.persistence.jdbc.url"
|
||||
value="jdbc:hsqldb:hsql://localhost/" />
|
||||
<property name="jakarta.persistence.jdbc.user" value="sa" />
|
||||
<property name="jakarta.persistence.jdbc.password" value="" />
|
||||
<property
|
||||
name="jakarta.persistence.schema-generation.database.action"
|
||||
value="update" />
|
||||
<property name="jakarta.persistence.dialect"
|
||||
value="org.hibernate.dialect.HSQLDialect" />
|
||||
<property name="hibernate.show_sql" value="true" />
|
||||
|
||||
</properties>
|
||||
</persistence-unit>
|
||||
|
||||
<persistence-unit name="mysql">
|
||||
<provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
|
||||
|
||||
<properties>
|
||||
<property name="jakarta.persistence.jdbc.driver"
|
||||
value="com.mysql.cj.jdbc.Driver" />
|
||||
<property name="jakarta.persistence.jdbc.url"
|
||||
value="jdbc:mysql://localhost/mydatabase" />
|
||||
<property name="jakarta.persistence.jdbc.user" value="tlc" />
|
||||
<property name="jakarta.persistence.jdbc.password" value="tlc" />
|
||||
<property
|
||||
name="jakarta.persistence.schema-generation.database.action"
|
||||
value="update" />
|
||||
<property name="jakarta.persistence.dialect"
|
||||
value="org.hibernate.dialect.MySQL8Dialect" />
|
||||
<property name="hibernate.show_sql" value="true" />
|
||||
<property name="hibernate.c3p0.min_size" value="5" />
|
||||
<property name="hibernate.c3p0.max_size" value="20" />
|
||||
<property name="hibernate.c3p0.timeout" value="300" />
|
||||
<property name="hibernate.c3p0.max_statements" value="50" />
|
||||
<property name="hibernate.c3p0.idle_test_period" value="3000" />
|
||||
</properties>
|
||||
</persistence-unit>
|
||||
|
||||
</persistence>
|
||||
15
src/main/resources/log4j.properties
Normal file
15
src/main/resources/log4j.properties
Normal file
@@ -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
|
||||
Reference in New Issue
Block a user