Bonjour,
J'ai toujours entendu dire qu'utiliser des PreparedStatement permettait d'améliorer les temps d'exécution des requêtes grâce à la précompilation (si le driver la supporte).
Je ne doute pas que ça soit vrai dans un cas comme celui ci:
mais si l'instance de PreparedStatement n'est utilisée qu'une seule fois, par exemple:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 PreparedStatement ps = connection.prepareStatement("SELECT ..."); for (...) { // set des paramètres ps.setObject(...); // exécution ResultSet rs = ps.executeQuery(); //exploitation du résultat ...; }
est-ce que c'est toujours le cas ?
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 void methodA() { for (int i=...) { ResultSet rs = methodB(i); //exploitation du résultat ...; } } void methodB(int param) { PreparedStatement ps = connection.prepareStatement("SELECT ..."); // set des paramètres ps.setObject(param...); // exécution return ps.executeQuery(); }
J'ai (beaucoup) simplifié le code ci-dessus, car je me pose la question d'un point de vue théorique. Je sais qu'il faut libérer les ressources, etc. Je sais aussi qu'il ne faut pas chercher à optimiser avant d'avoir des problèmes de performance: je veux juste savoir si dans la façon de faire du deuxième cas les PreparedStatement sont pertinents.
Au passage il s'agit d'une connexion à une base DB2...
Merci d'avance
Partager