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
* @param ID Id de l'utilisateur qui vient de se connecter pour la premiere fois
* 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 que l'on veut rajouter
* @param Pseudo pseudo actuelle de l'utilisateur
*/
public void ajoutUtilisateurs(String ID , String Pseudo ) {
// Verification que l'utilisateur n'existe pas
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
String existe= "SELECT Pseudo FROM Customers WHERE ID = " + ID;
Statement stmt = null;
ResultSet rs = null ;
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");
stmt = this.connection.createStatement();
} catch (SQLException throwables) {
throwables.printStackTrace();
}
//Execute la donnée SQL statement passe en parametre
try {
Ps.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
System.out.println(" Echec executeUpdate ");
rs = stmt.executeQuery(existe);
} catch (SQLException throwables) {
throwables.printStackTrace();
}
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 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 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 ;
}
/*
* 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 ;
}
}