Browse Source

Correction bug import fichier SQL

Arthur Brandao 5 years ago
parent
commit
1363cd0f4b

+ 21 - 4
src/db/DatabaseManager.java

@@ -2,7 +2,10 @@ package db;
 
 import java.io.File;
 import java.io.FileInputStream;
+import java.io.FileNotFoundException;
 import java.io.IOException;
+import java.net.URISyntaxException;
+import java.net.URL;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
@@ -24,7 +27,13 @@ public abstract class DatabaseManager {
 	public abstract List<String> content();
 	
 	public List<String> readSQLFile(String sqlFile) {
-		return readSQLFile(new File(sqlFile));
+		try {
+			URL ressource = DatabaseManager.class.getResource(sqlFile);
+			return readSQLFile(new File(ressource.toURI()));
+		} catch (URISyntaxException e) {
+			LOGGER.severe("Unable to find SQL File: " + e.getMessage());
+			return new ArrayList<>();
+		}
 	}
 	
 	public List<String> readSQLFile(File sqlFile) {
@@ -35,8 +44,17 @@ public abstract class DatabaseManager {
 		// Lecture du fichier
 		try {
 			FileInputStream fis = new FileInputStream(sqlFile);
-			byte[] data = new byte[(int) sqlFile.length()];
-			fis.read(data);
+			return readSQLFile(fis);
+		} catch (FileNotFoundException e) {
+			LOGGER.severe("Unable to find SQL File: " + e.getMessage());
+			return new ArrayList<>();
+		}
+		
+	}
+	
+	public List<String> readSQLFile(FileInputStream fis) {
+		try {
+			byte[] data = fis.readAllBytes();
 			fis.close();
 			String sql = new String(data, "UTF-8");
 			return Arrays.asList(sql.split(";\n")).stream().filter(elt -> !elt.trim().isEmpty()).collect(Collectors.toList());
@@ -44,7 +62,6 @@ public abstract class DatabaseManager {
 			LOGGER.severe("Unable to read SQL File: " + e.getMessage());
 			return new ArrayList<>();
 		}
-		
 	}
 
 }

+ 3 - 78
src/microfolie/persistance/MicrofolieDatabase.java

@@ -8,94 +8,19 @@ public class MicrofolieDatabase extends DatabaseManager {
 	
 	private static MicrofolieDatabase instance;
 
-	/*private static void iniCreate() {
-		create.put("Espace", "CREATE TABLE Espace ("
-				+ "ID BIGINT NOT NULL PRIMARY KEY GENERATED ALWAYS AS IDENTITY,"
-				+ "LIBELLE VARCHAR(250) NOT NULL,"
-				+ "CODE VARCHAR(100) UNIQUE NOT NULL)");
-		create.put("Ville", "CREATE TABLE Ville ("
-				+ "ID BIGINT NOT NULL PRIMARY KEY GENERATED ALWAYS AS IDENTITY,"
-				+ "LIBELLE VARCHAR(250) NOT NULL,"
-				+ "CODEPOSTAL VARCHAR(5))");
-		create.put("Niveau", "CREATE TABLE Niveau ("
-				+ "ID BIGINT NOT NULL PRIMARY KEY GENERATED ALWAYS AS IDENTITY,"
-				+ "LIBELLE VARCHAR(250) NOT NULL)");
-		create.put("Ecole", "CREATE TABLE Ecole ("
-				+ "ID BIGINT NOT NULL PRIMARY KEY GENERATED ALWAYS AS IDENTITY,"
-				+ "LIBELLE VARCHAR(250) NOT NULL,"
-				+ "VILLE BIGINT,"
-				+ "NIVEAU BIGINT,"
-				+ "CONSTRAINT fk_ecole_ville FOREIGN KEY (VILLE) REFERENCES Ville(ID),"
-				+ "CONSTRAINT fk_ecole_niveau FOREIGN KEY (NIVEAU) REFERENCES Niveau(ID))");
-		create.put("Usager", "CREATE TABLE Usager ("
-				+ "ID BIGINT NOT NULL PRIMARY KEY GENERATED ALWAYS AS IDENTITY,"
-				+ "NOM VARCHAR(250) NOT NULL,"
-				+ "PRENOM VARCHAR(250) NOT NULL,"
-				+ "DATEDENAISSANCE DATE NOT NULL,"
-				+ "EMAIL VARCHAR(250) NOT NULL,"
-				+ "TELEPHONE VARCHAR(12) NOT NULL,"
-				+ "CONTACTURGENCE VARCHAR(250) NOT NULL,"
-				+ "CODE VARCHAR(4) UNIQUE NOT NULL,"
-				+ "SCOLAIRE BOOLEAN NOT NULL,"
-				+ "DESCRIPTION VARCHAR(250) NOT NULL,"
-				+ "VILLE BIGINT,"
-				+ "ECOLE BIGINT,"
-				+ "CONSTRAINT fk_usager_ville FOREIGN KEY (VILLE) REFERENCES Ville(ID),"
-				+ "CONSTRAINT fk_usager_ecole FOREIGN KEY (ECOLE) REFERENCES Ecole(ID))");
-		create.put("Frequentation", "CREATE TABLE Frequentation ("
-				+ "ID BIGINT NOT NULL PRIMARY KEY GENERATED ALWAYS AS IDENTITY,"
-				+ "ESPACE BIGINT,"
-				+ "USAGER BIGINT,"
-				+ "DATE DATE NOT NULL,"
-				+ "CONSTRAINT fk_frequentation_espace FOREIGN KEY (ESPACE) REFERENCES Espace(ID),"
-				+ "CONSTRAINT fk_frequentation_usager FOREIGN KEY (USAGER) REFERENCES Usager(ID))");
-	}
-	
-	private static void iniDrop() {
-		drop.put("Frequentation", "DROP TABLE Frequentation");
-		drop.put("Usager", "DROP TABLE Usager");
-		drop.put("Ecole", "DROP TABLE Ecole");
-		drop.put("Niveau", "DROP TABLE Niveau");
-		drop.put("Ville", "DROP TABLE Ville");
-		drop.put("Espace", "DROP TABLE Espace");
-	}
-	
-	private static void iniMock() {
-		mock.add("Insert into Espace(LIBELLE, CODE) Values('Accueil', 'accueil')");
-		mock.add("Insert into Espace(LIBELLE, CODE) Values('Jeux Vid&eacute;o', 'jeux-video')");
-		mock.add("Insert into Espace(LIBELLE, CODE) Values('Vid&eacute;o', 'video')");
-		mock.add("Insert into Espace(LIBELLE, CODE) Values('Imprimante 3D', 'imprimante-3d')");
-		mock.add("Insert into Ville(LIBELLE, CODEPOSTAL) Values('Troyes', '10000')");
-		mock.add("Insert into Ville(LIBELLE, CODEPOSTAL) Values('Reims', '51000')");
-		mock.add("Insert into Ville(LIBELLE, CODEPOSTAL) Values('Lens', '62300')");
-		mock.add("Insert into Niveau(LIBELLE) Values('A')");
-		mock.add("Insert into Niveau(LIBELLE) Values('B')");
-		mock.add("Insert into Ecole(LIBELLE, VILLE, NIVEAU) Values('Camille claudel', 1, 2)");
-		mock.add("Insert into Ecole(LIBELLE, VILLE, NIVEAU) Values('UTT', 1, 1)");
-		mock.add("Insert into Ecole(LIBELLE, VILLE, NIVEAU) Values('Moulin de la housse', 2, 2)");
-		mock.add("Insert into Ecole(LIBELLE, VILLE, NIVEAU) Values('Jean Perrin', 3, 1)");
-		mock.add("Insert into Ecole(LIBELLE, NIVEAU) Values('Nowhere', 1)");
-		mock.add("Insert into Usager(NOM, PRENOM, DATEDENAISSANCE, EMAIL, TELEPHONE, CONTACTURGENCE, CODE, SCOLAIRE, DESCRIPTION, VILLE, ECOLE) Values('Brandao', 'Arthur', '1996-10-21', 'ab@email.fr', '0605040302', 'Nop', 'LCOM', TRUE, 'Desc', 1, 4)");
-		mock.add("Insert into Usager(NOM, PRENOM, DATEDENAISSANCE, EMAIL, TELEPHONE, CONTACTURGENCE, CODE, SCOLAIRE, DESCRIPTION, VILLE) Values('Vipe', 'Wesh', '2015-08-12', 'vipe@wesh.fr', '0605040301', 'Nop', 'W4sH', FALSE, 'Desc', 2)");
-		mock.add("Insert into Usager(NOM, PRENOM, DATEDENAISSANCE, EMAIL, TELEPHONE, CONTACTURGENCE, CODE, SCOLAIRE, DESCRIPTION, VILLE, ECOLE) Values('Shepard', 'Jane', '2154-04-11', 'shepard@normandy-sr2.fr', '0000000000', 'Nop', 'jsN7', TRUE, 'Desc', 3, 2)");
-		mock.add("Insert into Usager(NOM, PRENOM, DATEDENAISSANCE, EMAIL, TELEPHONE, CONTACTURGENCE, CODE, SCOLAIRE, DESCRIPTION, VILLE) Values('Tatsuya', 'Shiro', '1992-03-01', 'shiro.tetsuya@hotmail.fr', '0782751703', 'Nop', '1992', FALSE, 'Desc', 3)");
-		mock.add("Insert into Usager(NOM, PRENOM, DATEDENAISSANCE, EMAIL, TELEPHONE, CONTACTURGENCE, CODE, SCOLAIRE, DESCRIPTION, VILLE, ECOLE) Values('Perrin', 'Jean', '1870-09-30', 'jean_perrin@univ-artois.fr', '0000000011', 'Nop', 'jPUa', TRUE, 'Desc', 3, 2)");
-		mock.add("Insert into Usager(NOM, PRENOM, DATEDENAISSANCE, EMAIL, TELEPHONE, CONTACTURGENCE, CODE, SCOLAIRE, DESCRIPTION, VILLE, ECOLE) Values('Mikoto', 'Misaka', '2004-11-08', 'mmikoto@esper.co.jp', '1100000000', 'Nop', 'yolo', TRUE, 'Desc', 1, 2)");
-	}*/
-
 	@Override
 	public List<String> create() {
-		return readSQLFile("./sql/create.sql");
+		return readSQLFile("/sql/create.sql");
 	}
 
 	@Override
 	public List<String> drop() {
-		return readSQLFile("./sql/drop.sql");
+		return readSQLFile("/sql/drop.sql");
 	}
 
 	@Override
 	public List<String> content() {
-		return readSQLFile("./sql/insert.sql");
+		return readSQLFile("/sql/insert.sql");
 	}
 	
 	public static MicrofolieDatabase getInstance() {

+ 0 - 0
sql/create.sql → src/sql/create.sql


+ 0 - 0
sql/drop.sql → src/sql/drop.sql


+ 0 - 0
sql/insert.sql → src/sql/insert.sql