Partage
  • Partager sur Facebook
  • Partager sur Twitter

JSP - avoir une seule connexion JDBC

    17 juin 2009 à 15:01:12

    Bonjour,

    je suis en train de programmer un projet JSP, j'ai crée des classes pour gérer les données, ces classes là je les utilise dans mes fichiers JSP, ces classes se connectent à une base de données MySQL, alors il se trouve que j'utilise plusieurs classes dans le même fichier JSP, alors il y a plusieurs connexions et déconnexions dans le même fichier JSP, ce qui n'est pas jolie.

    j'ai lus le tutoriel http://www.siteduzero.com/tutoriel-3-1 [...] onnexion.html pour créer une seule insctance de classe pour avoir une seule connexion dans une application java, est ce que ça s'applique aussi dans un projet JSP, parce que là il y aura des millier de servlets exécutés au même temps, est ce que ces servlets partageront la même connexion, ou est ce qu'ils seront exécutes séparément sans partager la mémoire?
    Je suis débutant dans le monde JEE et je ne sais pas exactement comment les serveurs font pour gérer les servlets .

    Merci d'avance.
    • Partager sur Facebook
    • Partager sur Twitter
      17 juin 2009 à 17:07:26

      Dans une application JEE, tout est exécuté dans le même processus (Multi-threadé). Donc tout le monde partage la même mémoire.

      Résultat, un singleton (Et tout ce qui est static en général) sera bien partagé par tous les éléments (Que ce soit des Jsp, des Servlet ou n'importe quoi d'autre ; au final c'est toujours des objets Java [Les Servlet sont des classes, et les Jsp sont compilées en Servlet]).
      • Partager sur Facebook
      • Partager sur Twitter
        17 juin 2009 à 17:47:34

        Merci Veldryn pour ta precieuse réponse,
        alors je conclue que la classe singleton va être en mémoire et va être partagé par toutes les classes(servlet) de l'application, alors s'il y a 1000 utilisateurs simultanés, ils vont utiliser la même connexion retourné par la classe singleton, est ce que ça marchera sans problème ou est ce qu'il y aura une longue file d'attente qui causera des problèmes de rapidité d'exécution de chaque page JSP qui attends de recevoir les données? puisqu'elles utilisent la même connexion.



        voila ma classe singlton

        import java.sql.*;
        
        
        //classe singleton
        public class DBConnect {
        
        	private static String dbDriver = "com.mysql.jdbc.Driver";
        	private static String dbURL = "jdbc:mysql://localhost:3306/basededonnees";
        	private static String user="root"; 
        	private static String password ="";
        	private static Connection connect = null;
        
        	
        
        	private DBConnect() throws SQLException, ClassNotFoundException{
        		Class.forName(DBConnect.dbDriver);
        		connect = DriverManager.getConnection(dbURL, user, password);
        		System.out.println("Instance de la classe DBConnect");
        	}
        	
        	
        
        	public static Connection getInstanceConnexion() throws SQLException, ClassNotFoundException{
        		if(connect == null){ 
        			new DBConnect();
        		}
        		return connect;	
        	}
        	
        	
        }
        


        utilisationdans mes classes
        con = DBConnect.getInstanceConnexion();
        

        Merci d'avance.

        • Partager sur Facebook
        • Partager sur Twitter
          18 juin 2009 à 15:36:54

          Ca, c'est une question orientée base de données plutôt que Java... Et je ne connais pas la réponse ^^ Il me semble qu'il vaut mieux avoir plusieurs connexions, mais également que les ouvertures/fermetures de connexions prennent du temps (D'où l'utilisation de "pools", qui contiennent plusieurs connexions qui ne sont pas refermées après utilisation, mais distribuées aux autres Threads -- Me semble t-il)

          Bref, encore une fois, réponse à prendre avec des pincettes. D'après mes lectures, mais sans avoir jamais approfondi le sujet, il me semble qu'il vaut mieux avoir plusieurs connexions, mais éviter de les ouvrir/fermer tout le temps. Et je ne sais pas quel nombre de connexions est idéal.
          • Partager sur Facebook
          • Partager sur Twitter

          JSP - avoir une seule connexion JDBC

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown