Impossible de se connecter a BDD

This commit is contained in:
Auriane Lartigue 2020-12-27 11:00:47 +04:00
parent 42ae14a012
commit 22143615ba

View file

@ -176,36 +176,58 @@ public class DataBase {
/* /*
* Methode permettant de mettre a jour le pseudo d'un utilisateur en fonction de son ID dans la base de donnee * Methode permettant d'ajouter un utilisateur dans la base de donnée si celui-ci n'existe pas deja
* @param ID Id de l'utilisateur qui vient de se connecter pour la premiere fois * @param ID Id de l'utilisateur que l'on veut rajouter
* @param Pseudo pseudo actuelle de l'utilisateur * @param Pseudo pseudo actuelle de l'utilisateur
*/ */
public void ajoutUtilisateurs(String ID , String Pseudo ) { public void ajoutUtilisateurs(String ID , String Pseudo ) {
// Verification que l'utilisateur n'existe pas // Verification que l'utilisateur n'existe pas
String existe= "SELECT Pseudo FROM Customers WHERE ID = " + ID;
Statement stmt = null;
ResultSet rs = null ;
String requete= "INSERT INTO `Utilisateurs` (`ID`, `Pseudo`, `Actif`) VALUES ( ? , ? , '1')";
PreparedStatement Ps = null ;
//Statement est utilisé pour envoyer une requete SQL à la base de donnee
try { try {
Ps = connection.prepareStatement(requete); stmt = this.connection.createStatement();
Ps.setString(1, ID); } catch (SQLException throwables) {
Ps.setString(2, Pseudo); throwables.printStackTrace();
System.out.println("Statement cree");
} catch (SQLException e) {
e.printStackTrace();
System.out.println("Echec creation Statement");
} }
//Execute la donnée SQL statement passe en parametre
try { try {
Ps.executeUpdate(); rs = stmt.executeQuery(existe);
} catch (SQLException e) { } catch (SQLException throwables) {
e.printStackTrace(); throwables.printStackTrace();
System.out.println(" Echec executeUpdate "); }
String P = "" ;
try {
P = rs.getString("Pseudo");
} catch (SQLException throwables) {
throwables.printStackTrace();
}
if( !P.equals("") ) {
// L'utilisateur existe deja
if (!P.equals(Pseudo)){
this.majPseudo(ID,Pseudo); // On met a jour le nouveau pseudo
}
}
else {
String requete = "INSERT INTO `Utilisateurs` (`ID`, `Pseudo`, `Actif`) VALUES ( ? , ? , '1')";
PreparedStatement Ps = null;
//Statement est utilisé pour envoyer une requete SQL à la base de donnee
try {
Ps = connection.prepareStatement(requete);
Ps.setString(1, ID);
Ps.setString(2, Pseudo);
System.out.println("Statement cree");
} catch (SQLException e) {
e.printStackTrace();
System.out.println("Echec creation Statement");
}
//Execute la donnée SQL statement passe en parametre
try {
Ps.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
System.out.println(" Echec executeUpdate ");
}
} }
} }
@ -238,14 +260,90 @@ public class DataBase {
} }
/* /*
* Methode permettant de recuperer les 20 derniers messages envoyés entre 2 utilisateurs * Methode permettant de recuperer les N derniers messages envoyés entre 2 utilisateurs
* @param ID Utilisateur associé a ChatApp * @param ID Utilisateur associé a ChatApp
* @param destinataire Celui avec qui correspond ID * @param destinataire Celui avec qui correspond ID
* @return Les 20 derniers Messages * @return Les N derniers Messages
*/ */
public String recup20Msg(String ID, String IDdestinataire) { public String recupNMsg(String ID, String IDdestinataire, int N) {
String Msg = "" ; String Msg = "" ;
String petit;
String grand;
int comparaison = ID.compareTo(IDdestinataire);
if (comparaison < 0) {
petit = ID;
grand = IDdestinataire;
}
else {
petit = ID;
grand = IDdestinataire ;
}
String nomTable = "Chat_" + petit + "_" + grand ;
String requete= "SELECT * FROM nomTable";
Statement stmt = null;
ResultSet rs = null ;
try {
stmt = this.connection.createStatement();
} catch (SQLException throwables) {
throwables.printStackTrace();
}
try {
rs = stmt.executeQuery(requete);
} catch (SQLException throwables) {
throwables.printStackTrace();
}
for(int i = 0 ; i < N; i++){
try {
if( rs.next()){
String IDSource = rs.getString("Source");
String Envoi = rs.getTimestamp("Envoi").toString();
String Message = rs.getString("Message");
if (IDSource.equals(ID)){
Msg += ( "Moi (" + Envoi + ") : " + Message ) ;
}
else {
String PseudoSource = getPseudo(IDSource) ;
Msg += ( PseudoSource + "(" + Envoi + ") : " + Message );
}
}
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
return Msg ; return Msg ;
} }
/*
* Methode permettant de recuperer le pseudo actuel d'un utilisateur en fonction de son ID
* @param ID Id de l'utilsateur dont on veut connaitre le pseudo
* @return Pseudo
*/
private String getPseudo(String idSource) {
String Pseudo = "" ;
String requete= "SELECT * FROM `Utilisateurs` WHERE ID = " + idSource;
Statement stmt = null;
ResultSet rs = null ;
try {
stmt = this.connection.createStatement();
} catch (SQLException throwables) {
throwables.printStackTrace();
}
try {
rs = stmt.executeQuery(requete);
} catch (SQLException throwables) {
throwables.printStackTrace();
}
try {
if (! rs.getString("Pseudo").equals(null) ){
Pseudo = rs.getString("Pseudo") ;
}
} catch (SQLException throwables) {
throwables.printStackTrace();
}
return Pseudo ;
}
} }