From fcb1ccf532d5d23bf8215495e40359957e55161a Mon Sep 17 00:00:00 2001 From: LMAGallois Date: Thu, 17 Dec 2020 11:03:46 +0100 Subject: [PATCH] bdd --- .../Clavardage/src/controller/Controller.java | 23 ++- .../Clavardage/src/controller/Historique.java | 178 +++++++++++------- .../Clavardage/src/model/Database.java | 81 -------- 3 files changed, 119 insertions(+), 163 deletions(-) delete mode 100644 Application/Clavardage/src/model/Database.java diff --git a/Application/Clavardage/src/controller/Controller.java b/Application/Clavardage/src/controller/Controller.java index dbd313c..2d7b320 100644 --- a/Application/Clavardage/src/controller/Controller.java +++ b/Application/Clavardage/src/controller/Controller.java @@ -9,6 +9,7 @@ import java.net.DatagramSocket; import java.net.InetAddress; import java.net.Socket; import java.net.UnknownHostException; +import java.sql.SQLException; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.ArrayList; @@ -335,9 +336,15 @@ public class Controller { }catch(IOException e) { System.out.println("Error linking to TCP server of "+ c.getRemoteUser().getPortTCP()); } + c.setSocket(link); JOptionPane.showMessageDialog(null ,"New chat with "+c.getRemoteUser().getPseudo()); - + try { + System.out.println(this.getHistory().retrieveMessage(getMyUser(), c.getRemoteUser())); + } catch (SQLException e) { + System.out.println("souci avec le retrieveMsg"); + e.printStackTrace(); + } // TODO Récupération de la conversation (historique) } @@ -360,22 +367,14 @@ public class Controller { DateFormat dateFormat = new SimpleDateFormat("yyyy MM dd HH mm ss"); Date date=new Date(); - - //this.getHistory().saveMessage(getMyUser(), c.getRemoteUser(),message ,dateFormat.format(date) ); - - /* - System.out.println(this.getHistory()); - System.out.println(this.myUser.getPseudo()); - System.out.println(c.getRemoteUser().getPseudo()); - System.out.println(message); - System.out.println(dateString); - */ // Sauvegarde dans la base de données // TODO save history (On doit choisir entre sauvegarder à la reception ou a l'emission) même appel dans ListeningThreadTCPChat.run() - //this.getHistory().saveMessage(this.myUser, c.getRemoteUser(),message ,dateString); + //this.getHistory().saveMessage(getMyUser(), c.getRemoteUser(),message ,dateFormat.format(date)); // Envoie du message (avec la date) + //System.out.println(dateFormat.format(date)); + //System.out.println(message); out.println(dateFormat.format(date)); out.println(message); } diff --git a/Application/Clavardage/src/controller/Historique.java b/Application/Clavardage/src/controller/Historique.java index 8d20536..e01d35e 100644 --- a/Application/Clavardage/src/controller/Historique.java +++ b/Application/Clavardage/src/controller/Historique.java @@ -10,112 +10,150 @@ import java.sql.SQLException; import java.sql.Statement; import java.util.Calendar; +import javax.sql.rowset.JdbcRowSet; + public class Historique { - private model.Database bdd; - private ResultSet rs_received; - private ResultSet rs_sent; - private ResultSetMetaData rsmd_received; - private ResultSetMetaData rsmd_sent; - - public void setRSReceived(ResultSet rs) { - this.rs_received=rs; - } - - public void setRSSent(ResultSet rs) { - this.rs_sent=rs; - } - - public ResultSet getRSSent() { - return this.rs_sent; - } - - public ResultSet getRSReceived() { - return this.rs_received; - } - - public void setRSMDReceived(ResultSetMetaData rsmd) { - this.rsmd_received=rsmd; - } - public void setRSMDSent(ResultSetMetaData rsmd) { - this.rsmd_sent=rsmd; - } - public ResultSetMetaData getRSMDReceived() { - return this.rsmd_received; - } - public ResultSetMetaData getRSMDSent() { - return this.rsmd_sent; - } public void saveMessage(model.User ctr1, model.RemoteUser ctr2, String input, String date) { + try { + Class.forName("java.sql.Driver"); + } catch (ClassNotFoundException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + Connection con = null; + try { + con = DriverManager.getConnection("jdbc:mysql://srv-bdens.insa-toulouse.fr:3306","tp_servlet_003","povu3Ma2"); + } catch (SQLException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } + Statement stat = null; + try { + stat = con.createStatement(); + } catch (SQLException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } + int nb_changed_rows = 0; + try { + nb_changed_rows = stat.executeUpdate("USE tp_servlet_003"); + } catch (SQLException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } + + try { + nb_changed_rows = stat.executeUpdate("CREATE TABLE chat ( user_IPcode1 INTEGER, user_IPcode2 INTEGER ,Message VARCHAR(450) ,temps VARCHAR(450) )"); + }catch (Exception e) { + e.printStackTrace(); + + } System.out.println("coucou"); - int nb_changed_rows=0; try { - nb_changed_rows = this.bdd.getStatement().executeUpdate("INSERT INTO chat values ("+ctr1.getIPcode()+","+ctr2.getIPcode()+","+input+","+date+")"); + nb_changed_rows = stat.executeUpdate("INSERT INTO chat VALUES ('"+ctr1.getIPcode()+"','"+ctr2.getIPcode()+"','"+input+"','"+date+"')"); } catch (SQLException e) { System.out.println("insertion pas établie"); e.printStackTrace(); } - //nb_changed_rows = this.bdd.getStatement().executeUpdate("DELETE FROM table where name=‘noname’"); - if (nb_changed_rows==0){ - System.out.println("la modification n'a pas eu lieue"); +// try { +// nb_changed_rows = stat.executeUpdate("DELETE FROM chat WHERE data(VARCHAR(255))="valeur""); +// } catch (SQLException e) { +// // TODO Auto-generated catch block +// e.printStackTrace(); +// } + try { + stat.close(); + } catch (SQLException e) { + // TODO Auto-generated catch block + e.printStackTrace(); } + try { + con.close(); + } catch (SQLException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } public String retrieveMessage(model.LocalUser user1, model.RemoteUser user2) throws SQLException { - this.setRSSent(this.bdd.getStatement().executeQuery("SELECT"+user1.getIPcode()+","+user2.getIPcode()+",? ,? FROM table")); - this.setRSReceived(this.bdd.getStatement().executeQuery("SELECT"+user2.getIPcode()+","+user1.getIPcode()+",?, ? FROM table")); - //this.setRSMDSent(this.getRSSent().getMetaData()); - //this.setRSMDReceived(this.getRSReceived().getMetaData()); - boolean encore1 = this.getRSSent().next(); - boolean encore2 = this.getRSReceived().next(); + try { + Class.forName("java.sql.Driver"); + } catch (ClassNotFoundException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + Connection con=DriverManager.getConnection("jdbc:mysql://srv-bdens.insa-toulouse.fr:3306","tp_servlet_003","povu3Ma2"); + Statement stat=con.createStatement(); + Statement stat2=con.createStatement(); + int nb_changed_rows = stat.executeUpdate("USE tp_servlet_003"); + + try { + nb_changed_rows = stat.executeUpdate("CREATE TABLE chat ( user_IPcode1 INTEGER, user_IPcode2 INTEGER ,Message VARCHAR(450) ,temps VARCHAR(450) )"); + }catch (Exception e) { + e.printStackTrace(); + + } + ResultSet RSSent=(stat.executeQuery("SELECT user_IPcode1, user_IPcode2, Message, temps FROM chat WHERE user_IPcode1="+user1.getIPcode())); + //System.out.println(RSSent); + boolean encore1 = RSSent.next(); + ResultSet RSReceived=(stat2.executeQuery("SELECT user_IPcode1, user_IPcode2, Message, temps FROM chat WHERE user_IPcode1="+user2.getIPcode())); + boolean encore2 = RSReceived.next(); String message=null; String[] string1=null; String[] string2=null; Calendar date1=Calendar.getInstance(); Calendar date2=Calendar.getInstance(); while(encore1 || encore2) { - while (this.getRSSent().getInt(1)!=user2.getIPcode()) { - encore1=this.getRSSent().next(); + //RSSent=(stat.executeQuery("SELECT user_IPcode1, user_IPcode2, Message, temps FROM chat WHERE user_IPcode1="+user1.getIPcode())); + //boolean temp=RSSent.next(); + + while (RSSent.getInt(2)!=user2.getIPcode()) { + encore1=RSSent.next(); } - string1=this.getRSSent().getString(3).split(" "); + string1=RSSent.getString(4).split(" "); + System.out.println(RSSent.getString(4)); date1.set(Integer.valueOf(string1[0]), Integer.valueOf(string1[1]), Integer.valueOf(string1[2]),Integer.valueOf(string1[3]), Integer.valueOf(string1[4]), Integer.valueOf(string1[5])); + //RSReceived=(stat.executeQuery("SELECT user_IPcode1, user_IPcode2, Message, temps FROM chat WHERE user_IPcode1="+user2.getIPcode())); + //boolean tempi = RSReceived.next(); - while (this.getRSReceived().getInt(0)!=user1.getIPcode()) { - encore2=this.getRSReceived().next(); + while (RSReceived.getInt(1)!=user1.getIPcode()) { + encore2=RSReceived.next(); } - string2=this.getRSReceived().getString(3).split(" "); + string2=RSReceived.getString(4).split(" "); date2.set(Integer.valueOf(string2[0]), Integer.valueOf(string2[1]), Integer.valueOf(string2[2]),Integer.valueOf(string2[3]), Integer.valueOf(string2[4]), Integer.valueOf(string2[5])); if (date1.compareTo(date2)>=0) { - message=message+this.getRSReceived().getString(2); - message=message+this.getRSSent().getString(2); + message=message+"\n"+RSReceived.getString(3); + message=message+"\n"+RSSent.getString(3); }else { - message=message+this.getRSSent().getString(2); - message=message+this.getRSReceived().getString(2); + message=message+"\n"+RSSent.getString(3); + message=message+"\n"+RSReceived.getString(3); } - encore1=this.getRSSent().next(); - encore2=this.getRSReceived().next(); + encore1=RSSent.next(); + encore2=RSReceived.next(); } + RSSent.close(); + RSReceived.close(); + stat.close(); + stat2.close(); + con.close(); return message; } - public void close_all() throws SQLException { - this.rs_received.close(); - this.rs_sent.close(); - this.bdd.close(); - } - //MAIN - public Historique() { - - //this.bdd=new model.Database(); - System.out.println("coucoudb"); - - - } + +// //MAIN +// public Historique() { +// +// System.out.println("coucoudb"); +// +// +// } } diff --git a/Application/Clavardage/src/model/Database.java b/Application/Clavardage/src/model/Database.java deleted file mode 100644 index 1c46454..0000000 --- a/Application/Clavardage/src/model/Database.java +++ /dev/null @@ -1,81 +0,0 @@ -package model; - -import java.sql.Connection; - -import java.sql.DriverManager; -import java.sql.ResultSet; -import java.sql.SQLException; -import java.sql.Statement; - -public class Database { - private Statement statement; - private Connection con; - - public Statement getStatement() { - return this.statement; - } - - public void close () throws SQLException { - this.statement.close(); - this.con.close(); - - } - - - public Database() { - try { - Class.forName("java.sql.Driver"); - System.out.println("coucou"); - } catch (ClassNotFoundException e) { - System.out.println("probleme avec le driver"); - e.printStackTrace(); - } - try { - this.con=DriverManager.getConnection("jdbc:mysql://srv-bdens.insa-toulouse.fr:3306","tp_servlet_003","povu3Ma2"); - System.out.println("coucou"); - } catch (SQLException e) { - System.out.println("co pas établie"); - e.printStackTrace(); - } - - try { - this.statement=this.con.createStatement(); - System.out.println("coucou"); - } catch (SQLException e) { - System.out.println("statement pas établi"); - e.printStackTrace(); - } - - int nb_changed_rows=0; -// try { -// nb_changed_rows = statement.executeUpdate("CREATE DATABASE base"); -// System.out.println("coucou"); -// } catch (SQLException e) { -// System.out.println("base de données pas établit"); -// e.printStackTrace(); -// } - try { - nb_changed_rows = statement.executeUpdate("USE tp_servlet_003"); - System.out.println("coucou"); - } catch (SQLException e) { - System.out.println("use base pas établi"); - e.printStackTrace(); - } - - try { - nb_changed_rows = statement.executeUpdate("CREATE TABLE chat ( user_IPcode1 INTEGER, user_IPcode2 INTEGER ,Message VARCHAR(450) ,temps VARCHAR(450) )"); - System.out.println("coucou"); - System.out.println(nb_changed_rows); - - } catch (SQLException e) { - System.out.println("table non créée"); - e.printStackTrace(); - } -// -// if (nb_changed_rows==0){ -// System.out.println("la modification n'a pas eu lieue"); -// }; - - } - -}