import java.io.IOException; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.net.ServerSocket; import java.net.Socket; import java.sql.DriverManager; import java.sql.SQLException; import java.util.ArrayList; import java.util.logging.Level; import java.util.logging.Logger; public class ServeurSQL { public static void main(String []args) throws IOException { ServerSocket service = new ServerSocket(1200); System.out.println("Service démarré..."); while(true) { //Ecoute la carte réseau et le numéros de service en attente d'un client Socket client = service.accept(); System.out.println("Un client veut executer une requête"); new Traitement(client).start(); } } } class Traitement extends Thread { private String Marequete; private Socket client; public Traitement(Socket client)//constructeur { this.client = client; } public void run() { //Flux ObjectInputStream requete = null; ObjectOutputStream reponse = null; try { //reception de la requete requete = new ObjectInputStream(client.getInputStream()); //Flux de sortie de ce type pour envoyer les types Object reponse = new ObjectOutputStream(client.getOutputStream()); try { //Lecture du nom de la requete this.Marequete = (String)requete.readObject(); } catch (ClassNotFoundException ex) { Logger.getLogger(Traitement.class.getName()).log(Level.SEVERE, null, ex); } //Envoi de la réponse au client objet ArrayList try { String sqlRequete = Marequete; System.out.println(sqlRequete); reponse.writeObject(this.getresutlRequ(sqlRequete)); } catch (java.sql.SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } //Fermeture du client client.close(); System.out.println("Deconnexion avec le client : "+ client.getInetAddress().getHostAddress()); } catch (IOException ex) { System.err.println("Communication interrompue"); } } // se connecte au serveur private void getconnection() throws java.sql.SQLException { try { Class.forName("com.mysql.jdbc.Driver"); } catch (ClassNotFoundException ex) { System.err.println("Erreur Driver");} } public ArrayList getresutlRequ(String requeteClient) throws java.sql.SQLException { ArrayList listeResult = new ArrayList(); try { getconnection(); //on se connecte à la BD java.sql.Connection connexion = DriverManager.getConnection("jdbc:mysql://127.0.0.1/projetandroid", "root", ""); java.sql.Statement instruction = connexion.createStatement(); java.sql.ResultSet résultat = instruction.executeQuery("SELECT * FROM hotel"); while (résultat.next()) { // On lit les champs de la ligne System.out.println("nom: "+résultat.getString("nom")); listeResult.add(résultat.getString("nom")); } } catch (SQLException e) { e.printStackTrace(); } System.out.println("Résultat de la requête SQL : "); //liste des champs retournés return listeResult; } }