Bonjour à tous,
Je vous écris car actuellement je suis un tout petit peu embrouillé.
Je fais une application qui se connecte à une base de données SQL Server. Pour gérer la connexion à la BD, j'ai créé une classe Connection dont la méthode principale me renvoie un objet de type Connection. Voici le code en substance:
J'ai ensuite déclaré dans ma classe principale ConsoleFrame des objets de type Connection et Statement statiques.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 public class Connect { String pwd; String user; String dataBase; String adressEtPort; public Connect(String adressEtPort, String dataBase, String user, String pwd){ this.adressEtPort= adressEtPort; this.dataBase=dataBase; this.user=user; this.pwd=pwd; } public Connection connectDb() throws SQLException{ String connectionUrl="jdbc:sqlserver://"+adressEtPort+";databaseName="+dataBase+"; user="+ user+"; password="+pwd +";"; Connection con= DriverManager.getConnection(connectionUrl); return con; }
Je leur ai donné des valeurs,
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 private static Connection con=null; private static Statement stmt=null;
et à présent je les utilise pour toutes mes classes qui doivent se connecter à la BD par le biais de l'expression
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 con=connect.connectDb(); stmt=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);Jusqu'à présent ça fonctionne, mais ce qui me gêne c'est d'avoir une seule connexion ouverte(et statique qui plus est!!) jusqu'à ce que l'appli soit fermée. Je crains en fait que lorsque plusieurs personnes tenteraient de se connecter simultanément ça rame à mort!! je voudrais donc savoir s'il n'est pas mieux pour les performances (rapidité) et pour prévenir des attentes trop longues d'avoir une connexion par classe accédant à la base de données? Par exemple on aurait
Code : Sélectionner tout - Visualiser dans une fenêtre à part ConsoleFrame.getStmt()
, pareil pour une classe Y, Z ou lambda...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 Public class X{ private Connection con; private Statement stmt; public X(){ con= connect.connectDb(); stmt= con.createStatment(...); } ........ fermerConnexions()..
Need a help pleeeaz!!![]()





Répondre avec citation



Partager