Compare commits
2 commits
c4eccf38a9
...
22143615ba
Author | SHA1 | Date | |
---|---|---|---|
22143615ba | |||
42ae14a012 |
3 changed files with 142 additions and 27 deletions
|
@ -8,15 +8,15 @@ chatapp/Model/Historique.java
|
|||
chatapp.Model.Historique
|
||||
chatapp/Model/MessageHorodate.java
|
||||
chatapp.Model.MessageHorodate
|
||||
chatapp/Model/DataBase.java
|
||||
chatapp.Model.DataBase
|
||||
chatapp/View/View_Menu.java
|
||||
chatapp.View.View_Menu
|
||||
chatapp/Protocol/RunnerEcouteTCP.java
|
||||
chatapp.Protocol.RunnerEcouteTCP
|
||||
chatapp/View/FenetreSession.java
|
||||
chatapp.View.FenetreSession
|
||||
chatapp.View.FenetreSession$1
|
||||
chatapp/Controller/ChatApp.java
|
||||
chatapp.Controller.ChatApp
|
||||
chatapp/View/DemarrerSession.java
|
||||
chatapp.View.DemarrerSession
|
||||
chatapp/View/ChangementPseudo.java
|
||||
chatapp.View.ChangementPseudo
|
||||
chatapp/Protocol/RunnerEcouteUDP.java
|
||||
|
@ -39,7 +39,7 @@ chatapp/View/ConnexionScreen.java
|
|||
chatapp.View.ConnexionScreen
|
||||
chatapp/View/View_Utilisateurs.java
|
||||
chatapp.View.View_Utilisateurs
|
||||
chatapp/View/View_Menu.java
|
||||
chatapp.View.View_Menu
|
||||
chatapp/View/DemarrerSession.java
|
||||
chatapp.View.DemarrerSession
|
||||
chatapp/Controller/ChatApp.java
|
||||
chatapp.Controller.ChatApp
|
||||
chatapp/Model/DataBase.java
|
||||
chatapp.Model.DataBase
|
||||
|
|
|
@ -48,7 +48,7 @@ public class ChatApp implements PropertyChangeListener {
|
|||
this.actifUsers.addList(getMe());
|
||||
|
||||
this.main = main;
|
||||
//this.db= DataBase.getInstance();
|
||||
this.db= DataBase.getInstance();
|
||||
}
|
||||
|
||||
public static synchronized ChatApp getInstance(String pseudo, Integer port, Application main){
|
||||
|
|
|
@ -176,30 +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 ) {
|
||||
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
|
||||
// Verification que l'utilisateur n'existe pas
|
||||
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 ");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -231,4 +259,91 @@ public class DataBase {
|
|||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* 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 N derniers Messages
|
||||
*/
|
||||
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 ;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue