feat(DevWeb): Support multiple databases (test, prod)

This commit is contained in:
Lucàs
2024-03-22 17:43:46 +01:00
parent 8e9bfebffe
commit db7750d5aa
9 changed files with 83 additions and 34 deletions
@@ -15,11 +15,11 @@ public class Main {
// DAO<Player> daoJpaPlayer = jpaDaoFactory.getDAOPlayer();
// Contenu de la BD au début
// User[] users = daoJpaUser.findAll();
// for (User u : users) {
// System.out.println(u.toString());
// }
// System.out.println();
User[] users = daoJpaUser.findAll();
for (User u : users) {
System.out.println(u.toString());
}
System.out.println();
// // Ajout d'User :
// Calendar cal1 = Calendar.getInstance();
@@ -33,12 +33,12 @@ public class Main {
// daoJpaUser.create(user1);
// daoJpaUser.create(user2);
System.out.println("test récupération user");
User[] users2 = daoJpaUser.findByField("username", "Kevin");
for (User user : users2) {
System.out.println(user.toString());
}
System.out.println("fin test");
// System.out.println("test récupération user");
// User[] users2 = daoJpaUser.findByField("username", "Kevin");
// for (User user : users2) {
// System.out.println(user.toString());
// }
// System.out.println("fin test");
} catch (DAOException e) {
throw new RuntimeException(e);
}
@@ -0,0 +1,14 @@
package uppa.project.provider;
import io.github.cdimascio.dotenv.Dotenv;
public class DotenvProvider {
static Dotenv instance;
public static Dotenv getInstance() {
if (instance == null) {
instance = Dotenv.configure().load();
}
return instance;
}
}
@@ -18,8 +18,7 @@ import jakarta.persistence.Persistence;
* @see jakarta.persistence.EntityManager
*/
public final class EntityManagerProvider {
private final static String PERSISTANCE_UNIT_NAME = "db";
private static final String PERSISTANCE_UNIT_NAME = DotenvProvider.getInstance().get("PERSISTANCE_UNIT_NAME");
private static EntityManager instance;
private static EntityManagerFactory factory;
@@ -3,7 +3,7 @@
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="db">
<persistence-unit name="prod">
<class>uppa.project.pojo.User</class>
<class>uppa.project.pojo.Game</class>
@@ -12,11 +12,29 @@
<properties>
<property name="jakarta.persistence.jdbc.driver" value="com.mysql.cj.jdbc.Driver"/>
<property name="jakarta.persistence.jdbc.url" value="jdbc:mysql://localhost:6033/db?useSSL=false&amp;allowPublicKeyRetrieval=true"/>
<property name="jakarta.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/db_prod?useSSL=false&amp;allowPublicKeyRetrieval=true"/>
<property name="jakarta.persistence.jdbc.user" value="root"/>
<property name="jakarta.persistence.jdbc.password" value="root"/>
<property name="jakarta.persistence.schema-generation.database.action" value="create"/>
</properties>
</persistence-unit>
<persistence-unit name="test">
<class>uppa.project.pojo.User</class>
<class>uppa.project.pojo.Game</class>
<class>uppa.project.pojo.Player</class>
<class>uppa.project.pojo.RecoveryPasswordToken</class>
<properties>
<property name="jakarta.persistence.jdbc.driver" value="com.mysql.cj.jdbc.Driver"/>
<property name="jakarta.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/db_test?useSSL=false&amp;allowPublicKeyRetrieval=true"/>
<property name="jakarta.persistence.jdbc.user" value="root"/>
<property name="jakarta.persistence.jdbc.password" value="root"/>
<property name="jakarta.persistence.schema-generation.database.action" value="create"/>
</properties>
</persistence-unit>
</persistence>