4.3.2. Le fichier service
import java.net.*;
import java.sql.*;
import java.io.*;
public class Service extends Thread{
Socket sck = null;
Connection con = null; // connexion à la BD
Statement stat = null; // exécution des cd sql
ResultSet rs = null; // pour recueillir les rsultats de la
consultation
ResultSetMetaData rsmd=null; // info sur resultset
String requete;
String requete1;
ResultSet rs1 = null;
Statement stat1 = null;
BufferedReader bfrd = null;
PrintWriter prtw = null;
public Service(Socket s){
sck = s;
}
/*
La méthode run est obligatoire dans une classe Thread.
c'est elle qui est exécutée
lors de l'invocation d'un thread par la laméthode
start()
*/
public void run(){
try{
bfrd = new BufferedReader(new
InputStreamReader(sck.getInputStream()));
prtw = new PrintWriter(sck.getOutputStream(),true);
} catch (Exception e) {
System.out.println("erreur creation flux \n" +e);
System.exit(0);
}
// 2. lire la reque du client
try{
requete = bfrd.readLine();
} catch (Exception e){
System.out.println("erreur lecture requete \n" +e);
System.exit(1);
}
// 3. analyser la requete cliente
String lettre1 = "";
lettre1 = requete.substring(0,1);
// 4. Appel de la méthode d'écriture pour une
requete d'écriture
if(lettre1.equals("i")) insertion();
else{
// 5. Appel de la méthode de consultation pour une
requete de consultation
consultation();
//chargecommun();
//suppression();
}
}
// Mthode d'écriture
public void insertion(){
connexion();
try{
int nbEnreg = stat.executeUpdate(requete);
} catch (Exception e){
System.out.println(e);
System.exit(1);
}
}
// méthode de suppression
public void suppression(){
connexion();
try{
int nbEnreg = stat.executeUpdate(requete);
} catch (Exception e){
System.out.println(e);
System.exit(1);
}
}
// Méthode de consultation
public void consultation(){
// connexion à la base
connexion();
try{
// exécuter la requete
rs = stat.executeQuery(requete);
//rs = stat.executeQuery(requete1);
// exploitation du rs
ResultSetMetaData rsmd = rs.getMetaData();
int nbCol = rsmd.getColumnCount();
while(rs.next()){
for(int i=1; i<=nbCol; i++){
prtw.println(rs.getString(i));
}
}
}catch(Exception e){
System.out.println(e);
System.exit(2);
}
}
// Consultation charge commun
}
4.3.3. Le fichier
Planification
import java.awt.*; // interface graphique
import java.applet.*; // Fonctionnalités applet
import javax.swing.*; // interface
import java.awt.event.*; // événements
import java.net.*; // aspect réseau
import java.sql.*;
import java.io.*; // envoi des requêtes et
réception
public class Planification extends Applet implements
WindowListener {
// attributs de la planifcation de la réunion
private String nom, sujet, agenda, datedebut;
private String datefin;
// objets graphiques globaux
TextField txnom=new TextField ();
TextField txsujet=new TextField ();
TextField txagenda=new TextField ();
TextField txdebut=new TextField ();
TextField txduree=new TextField ();
public Insets getInsets() {
Insets normal = super.getInsets();
return new Insets(normal.top + 60, normal.left + 40,
normal.bottom +40, normal.right + 40);
}
public void init(){
setSize(400, 300); // taille de l'applet
GridLayout gr=new GridLayout (5,2);
setLayout(gr); //disposition de l'applet
// Titre de l'applet
Label lbTitre = new Label("Planification réunion");
Font f = new Font("arial", Font.BOLD, 30);
lbTitre.setFont(f);
lbTitre.setBounds(5, 20, 350, 50); add(lbTitre);
Panel centre=new Panel(); add("Center",centre);
//GridLayout gr=new GridLayout (5,2);
centre.setLayout (gr);
centre.add(new Label ("Nom"));
centre.add(txnom);
centre.add(new Label ("Sujet"));
centre.add(txsujet);
centre.add(new Label ("Agenda"));
centre.add(txagenda);
centre.add(new Label ("DateDebut"));
centre.add(txdebut);
centre.add(new Label ("DateFin"));
centre.add(txduree);
Font f1=new Font("arial",Font.BOLD,14);
centre.setFont(f1);
centre.getInsets();
Panel sud=new Panel(); add("south",sud);
Button bt1=new Button("Envoyer");
Button bt2=new Button("Annuler");
Button bt3=new Button("VoirDésidérata");
sud.add(bt1);
sud.add(bt2);
sud.add(bt3);
sud.getInsets();
//
bt1.addActionListener( //gestion du bouton envoyer
new ActionListener(){
public void actionPerformed(ActionEvent e){
appelServeur(e);
}
}
);
bt2.addActionListener(// gestion du bouton annuler
new ActionListener(){
public void actionPerformed(ActionEvent e){
txnom.setText(null);
txsujet.setText(null);
txagenda.setText(null);
txdebut.setText(null);
txduree.setText(null);
}
}
);
bt3.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent e){
Dimension dim=getSize();
String[]
message={""+dim.width,""+dim.height,"mess1","mess2","mess3"};
ChargeHoraire.main(message);
}
});
}//fin de la methode init
public static void main(java.lang.String[] args) {//ces methodes
en dessous m'on permis de tourner
Planification applet = new Planification();//une applet dans
une application
Frame frame = new Frame("Planification de la
réunion");
frame.addWindowListener(applet);
frame.add("Center", applet);
frame.setSize(500, 700);
frame.show();
applet.init();
applet.start();
}
public void windowActivated(WindowEvent e) { } //
public void windowClosed(WindowEvent e) { }
public void windowClosing(WindowEvent e) {
System.exit(0);
}
public void windowDeactivated(WindowEvent e) { }
public void windowDeiconified(WindowEvent e) { }
public void windowIconified(WindowEvent e) { }
public void windowOpened(WindowEvent e) { }
public void appelServeur(ActionEvent evt){
// 1. récupérer les données de
l'interface
nom = txnom.getText(); sujet = txsujet.getText();
agenda = txagenda.getText(); datedebut = txdebut.getText();
datefin = txduree.getText();
// 2. construire la requete sql d'enregistrement
String requete = "insert into reunion ( nom, sujet, agenda,
datedebut,datefin) values ('"+nom+"', '"+sujet+"', '"+agenda+"',
'"+datedebut+"', '"+datefin+"')";
// 3. se connecter au serveur
Socket sck = null; // pour la connection cliente au
réseau (serveur)
try{
sck = new Socket("127.0.0.1", 1500);
} catch (Exception e){
JOptionPane.showMessageDialog(
null,
"erreur : " + e, "connexion au serveur",
JOptionPane.ERROR_MESSAGE
);
}
// 4. créer le flux d'envoi de la requete
PrintWriter prtw = null; // flux d'envoi de données
try{
prtw = new PrintWriter(sck.getOutputStream(), true);
} catch (Exception e){
JOptionPane.showMessageDialog(
null,
"erreur : " + e, "création flux sortie",
JOptionPane.ERROR_MESSAGE
);
}
// 5. envoyer la requete au serveur
prtw.println(requete);
} // fin appelServeur
}
|