Ta classe de connexion est vraiment mal pensée... tu as défini la connexion en static !
Si tu as 2 demandes simultanées, tu piles la première ouverte...
Bref, les bons principes sont :
- une classe utilitaire qui ne s'occupe QUE de renvoyer une connexion
- des méthodes qui utilisent la connexion au travers de PreparedStatement ou Statement (ou autre...)
La classe utilitaire pourrait ressembler à ceci
Tes méthodes utilisatrices
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
18
19
20 public class ConnectionUtils { public static Connection getConnection() { try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); String url = "jdbc:mysql://ip:port/bd_name"; String user = "user_name"; String passwd = "password"; return DriverManager.getConnection(url, user, passwd); } catch (Exception e) { e.printStackTrace(); } return null; } }
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
18
19
20 ... Connection connection = null; PreparedStatement pstmt = null; try { connection = ConnectionUtils.getConnection(); pstmt = connection.prepareStatement("...."); ... } catch (Exception e) { // on signale } finally { if (pstmt != null) pstmt.close(); if (connection != null) connection.close(); }
Partager