package com.vgo.movie.data;
import java.io.IOException;
import java.io.Reader;
import java.sql.SQLException;
import java.util.List;
import java.util.Locale;
import com.ibatis.common.resources.Resources;
import com.ibatis.sqlmap.client.SqlMapClient;
import com.ibatis.sqlmap.client.SqlMapClientBuilder;
import com.vgo.movie.domain.Generique;
import com.vgo.movie.domain.GeneriqueRemplacement;
import com.vgo.movie.domain.Movie;
import com.vgo.movie.domain.Utilisateurs;
public class DatabaseDAO {
private static SqlMapClient sqlMapper;
static {
try {
Reader reader = Resources.getResourceAsReader("com/vgo/movie/data/SqlMapConfig.xml");
sqlMapper = SqlMapClientBuilder.buildSqlMapClient(reader);
reader.close();
} catch (IOException e) {
// Fail fast.
throw new RuntimeException("Something bad happened while building the SqlMapClient instance." + e, e);
}
}
public static List selectAllMovies(Movie movie) throws SQLException {
return sqlMapper.queryForList("selectAllMovies",movie);
}
public static List selectAllQualites() throws SQLException {
return sqlMapper.queryForList("selectAllQualites");
}
public static List selectAllStatuts() throws SQLException {
return sqlMapper.queryForList("selectAllStatuts");
}
public static List selectAllLangues() throws SQLException {
return sqlMapper.queryForList("selectAllLangues");
}
public static List selectAllMedias() throws SQLException {
return sqlMapper.queryForList("selectAllTypes");
}
public static List selectAllCompressions() throws SQLException {
return sqlMapper.queryForList("selectAllCompressions");
}
public static void updateMovie(Movie movie) throws SQLException {
sqlMapper.update("updateMovie", movie);
}
public static void deleteMovie(Movie movie) throws SQLException {
sqlMapper.delete("deleteMovie", movie);
}
public static Object recupDernierNumMedia() throws SQLException {
return sqlMapper.queryForObject("selectDernierNumMedia");
}
public static void insertMovie(Movie movie) throws SQLException {
sqlMapper.insert("insertMovie", movie);
}
public static Object recupDernierFilm() throws SQLException {
return sqlMapper.queryForObject("selectDernierFilm");
}
public static Object getDetailTypeMedia(Generique typeMedia) throws SQLException {
return sqlMapper.queryForObject("selectDetailTypeMedia", typeMedia);
}
public static void insertTypeMedia(Generique typeMedia) throws SQLException {
sqlMapper.insert("insertTypeMedia", typeMedia);
}
public static void updateTypeMedia(Generique typeMedia) throws SQLException {
sqlMapper.update("updateTypeMedia", typeMedia);
}
public static void deleteTypeMedia(Generique typeMedia) throws SQLException {
sqlMapper.delete("deleteTypeMedia", typeMedia);
}
public static Object getDetailCompression(Generique compression) throws SQLException {
return sqlMapper.queryForObject("selectDetailCompression", compression);
}
public static void insertCompression(Generique compression) throws SQLException {
sqlMapper.insert("insertCompression", compression);
}
public static void updateCompression(Generique compression) throws SQLException {
sqlMapper.update("updateCompression", compression);
}
public static void deleteCompression(Generique compression) throws SQLException {
sqlMapper.delete("deleteCompression", compression);
}
public static Object getDetailLangue(Generique langue) throws SQLException {
return sqlMapper.queryForObject("selectDetailLangue", langue);
}
public static void insertLangue(Generique langue) throws SQLException {
sqlMapper.insert("insertLangue", langue);
}
public static void updateLangue(Generique langue) throws SQLException {
sqlMapper.update("updateLangue", langue);
}
public static void deleteLangue(Generique langue) throws SQLException {
sqlMapper.delete("deleteLangue", langue);
}
public static Object getDetailQualite(Generique qualite) throws SQLException {
return sqlMapper.queryForObject("selectDetailQualite", qualite);
}
public static void insertQualite(Generique qualite) throws SQLException {
sqlMapper.insert("insertQualite", qualite);
}
public static void updateQualite(Generique qualite) throws SQLException {
sqlMapper.update("updateQualite", qualite);
}
public static void deleteQualite(Generique qualite) throws SQLException {
sqlMapper.delete("deleteQualite", qualite);
}
public static void insertVersion(Generique version) throws SQLException {
sqlMapper.insert("insertVersion", version);
}
public static Object selectLastVersion() throws SQLException {
return sqlMapper.queryForObject("selectLastVersion");
}
public static Object selectDetailUtilisateur(Utilisateurs util) throws SQLException {
return sqlMapper.queryForObject("selectDetailUtilisateur", util);
}
public static void updateFicheUtilisateur(Utilisateurs util) throws SQLException {
sqlMapper.update("updateUtilisateur", util);
}
public static List selectAllLanguesProgramme() throws SQLException {
return sqlMapper.queryForList("selectAllLanguesProgramme");
}
public static Object selectDetailLangueProgramme(Generique langue) throws SQLException {
return sqlMapper.queryForObject("selectDetailLangueProgramme",langue);
}
public static List verifierTypeMedia(Movie typeMedia) throws SQLException {
return sqlMapper.queryForList("verifierTypeMedia", typeMedia);
}
public static List verifierCompression(Movie compression) throws SQLException {
return sqlMapper.queryForList("verifierCompression", compression);
}
public static List verifierLangue(Movie langue) throws SQLException {
return sqlMapper.queryForList("verifierLangue", langue);
}
public static List verifierQualite(Movie qualite) throws SQLException {
return sqlMapper.queryForList("verifierQualite", qualite);
}
public static void updateAllMovieTypes(GeneriqueRemplacement remplacement) throws SQLException {
sqlMapper.update("updateAllMovieTypes",remplacement);
}
public static void updateAllCompressions(GeneriqueRemplacement remplacement) throws SQLException {
sqlMapper.update("updateAllCompressions",remplacement);
}
public static void updateAllLangues(GeneriqueRemplacement remplacement) throws SQLException {
sqlMapper.update("updateAllLangues",remplacement);
}
public static void updateAllQualites(GeneriqueRemplacement remplacement) throws SQLException {
sqlMapper.update("updateAllQualites",remplacement);
}
public static Object selectParametre(Generique tmp) throws SQLException{
return sqlMapper.queryForObject("selectParametre", tmp);
}
public static void updateParametre(Generique tmp) throws SQLException {
sqlMapper.update("updateParametre",tmp);
}
public static void creationBDD() throws SQLException {
Generique tmpGenerique = new Generique();
/*Cr�ation de la table des versions*/
sqlMapper.update("creationBDDDropTableVersion");
sqlMapper.update("creationBDDCreateTableVersion");
/*Cr�ation de la table des types de m�dias*/
sqlMapper.update("creationBDDDropTableTypeMedia");
sqlMapper.update("creationBDDCreateTableTypeMedia");
/*Insertion de type de m�dias initiaux*/
tmpGenerique.setCode("CD");
tmpGenerique.setLibelle("CD");
sqlMapper.insert("insertTypeMedia", tmpGenerique);
tmpGenerique.setCode("DVD");
tmpGenerique.setLibelle("DVD");
sqlMapper.insert("insertTypeMedia", tmpGenerique);
/*Cr�ation de la tables des langues*/
sqlMapper.update("creationBDDDropTableLangueMovie");
sqlMapper.update("creationBDDCreateTableLangueMovie");
/* Initialisation de la tables des langues*/
tmpGenerique.setCode("English");
tmpGenerique.setLibelle("English");
sqlMapper.insert("insertLangue", tmpGenerique);
tmpGenerique.setCode("French");
tmpGenerique.setLibelle("French");
sqlMapper.insert("insertLangue", tmpGenerique);
tmpGenerique.setCode("French/English");
tmpGenerique.setLibelle("French/English");
sqlMapper.insert("insertLangue", tmpGenerique);
tmpGenerique.setCode("Other");
tmpGenerique.setLibelle("Other");
sqlMapper.insert("insertLangue", tmpGenerique);
/*Cr�ation de la tables des compressions*/
sqlMapper.update("creationBDDDropTableCompression");
sqlMapper.update("creationBDDCreateCompression");
/* Initialisation de la tables des compressions*/
tmpGenerique.setCode("XviD");
tmpGenerique.setLibelle("XviD");
sqlMapper.insert("insertCompression", tmpGenerique);
tmpGenerique.setCode("DivX");
tmpGenerique.setLibelle("DivX");
sqlMapper.insert("insertCompression", tmpGenerique);
tmpGenerique.setCode("Other");
tmpGenerique.setLibelle("Other");
sqlMapper.insert("insertCompression", tmpGenerique);
tmpGenerique.setCode("RV9");
tmpGenerique.setLibelle("RV9");
sqlMapper.insert("insertCompression", tmpGenerique);
tmpGenerique.setCode("DVD");
tmpGenerique.setLibelle("DVD");
sqlMapper.insert("insertCompression", tmpGenerique);
/*Cr�ation de la tables des Qualit�*/
sqlMapper.update("creationBDDDropTableQualite");
sqlMapper.update("creationBDDCreateQualite");
/* Initialisation de la tables des Qualit�*/
tmpGenerique.setCode("DVD-Rip");
tmpGenerique.setLibelle("DVD-Rip");
sqlMapper.insert("insertQualite", tmpGenerique);
tmpGenerique.setCode("Screener");
tmpGenerique.setLibelle("Screener");
sqlMapper.insert("insertQualite", tmpGenerique);
tmpGenerique.setCode("VHS Rip");
tmpGenerique.setLibelle("VHS Rip");
sqlMapper.insert("insertQualite", tmpGenerique);
tmpGenerique.setCode("Half");
tmpGenerique.setLibelle("Half");
sqlMapper.insert("insertQualite", tmpGenerique);
/*Cr�ation de la table utilisateur*/
sqlMapper.update("creationBDDDropTableUtilisateurs");
sqlMapper.update("creationBDDCreateTableUtilisateurs");
Utilisateurs tmpUtilisateur = new Utilisateurs();
tmpUtilisateur.setLogin("admin");
tmpUtilisateur.setMotDePasse("password");
tmpUtilisateur.setLibelle("Administrateur");
tmpUtilisateur.setLangue(Locale.getDefault().getLanguage());
tmpUtilisateur.setIsAdmin("O");
sqlMapper.insert("insertUtilisateur", tmpUtilisateur);
/*Cr�ation de la tables des Films*/
sqlMapper.update("creationBDDDropTableMovie");
sqlMapper.update("creationBDDCreateMovie");
/*Insertion de la version de cr�ation*/
tmpGenerique.setCode("0.50");
tmpGenerique.setLibelle("Version 0.50");
sqlMapper.insert("insertVersion", tmpGenerique);
}
public static void migration(String script) throws SQLException {
Generique tmpGenerique = new Generique();
if(script.equals("migration_0_51")){
tmpGenerique.setCode("0.51");
tmpGenerique.setLibelle("Version 0.51");
sqlMapper.insert("insertVersion", tmpGenerique);
}
if(script.equals("migration_0_52")){
/*Cr�ation de la tables des langues du programme*/
sqlMapper.update("creationBDDDropTableLangueProgramme");
sqlMapper.update("creationBDDCreateTableLangueProgramme");
tmpGenerique.setCode("fr");
tmpGenerique.setLibelle("Fran�ais");
sqlMapper.insert("insertLangueProgramme",tmpGenerique);
tmpGenerique.setCode("en");
tmpGenerique.setLibelle("English");
sqlMapper.insert("insertLangueProgramme",tmpGenerique);
/*Puis insertion de la version 0.52*/
tmpGenerique.setCode("0.52");
tmpGenerique.setLibelle("Version 0.52");
sqlMapper.insert("insertVersion", tmpGenerique);
}
if(script.equals("migration_0_53")){
/*Puis insertion de la version 0.53*/
tmpGenerique.setCode("0.53");
tmpGenerique.setLibelle("Version 0.53");
sqlMapper.insert("insertVersion", tmpGenerique);
}
if(script.equals("migration_0_54")){
/*Puis insertion de la version 0.54*/
tmpGenerique.setCode("0.54");
tmpGenerique.setLibelle("Version 0.54");
sqlMapper.insert("insertVersion", tmpGenerique);
}
if(script.equals("migration_0_60")){
/*Cr�ation de la tables des param�tres syst�me*/
sqlMapper.update("creationBDDDropTableParametre");
sqlMapper.update("creationBDDCreateParametre");
/**********************************************/
tmpGenerique.setId("useProxy");
tmpGenerique.setCode("N");
sqlMapper.insert("insertParametre",tmpGenerique);
/**********************************************/
tmpGenerique.setId("http.proxyHost");
tmpGenerique.setCode("");
sqlMapper.insert("insertParametre",tmpGenerique);
/**********************************************/
tmpGenerique.setId("http.proxyPort");
tmpGenerique.setCode("");
sqlMapper.insert("insertParametre",tmpGenerique);
/**********************************************/
tmpGenerique.setId("http.proxyUser");
tmpGenerique.setCode("");
sqlMapper.insert("insertParametre",tmpGenerique);
/**********************************************/
tmpGenerique.setId("http.proxyPassword");
tmpGenerique.setCode("");
sqlMapper.insert("insertParametre",tmpGenerique);
/**********************************************/
/*Puis insertion de la version 0.60*/
tmpGenerique.setCode("0.60");
tmpGenerique.setLibelle("Version 0.60");
sqlMapper.insert("insertVersion", tmpGenerique);
}
if(script.equals("migration_0_70")){
//Pas de changement de structure des tables en 0.70
//Insertion de la version 0.70
tmpGenerique.setCode("0.70");
tmpGenerique.setLibelle("Version 0.70");
sqlMapper.insert("insertVersion", tmpGenerique);
}
}
}