diff options
Diffstat (limited to 'src/dao/SQLexecutor.java')
-rw-r--r-- | src/dao/SQLexecutor.java | 48 |
1 files changed, 23 insertions, 25 deletions
diff --git a/src/dao/SQLexecutor.java b/src/dao/SQLexecutor.java index 8f7f130..430c1c0 100644 --- a/src/dao/SQLexecutor.java +++ b/src/dao/SQLexecutor.java | |||
@@ -5,13 +5,20 @@ import java.sql.PreparedStatement; | |||
5 | import java.sql.ResultSet; | 5 | import java.sql.ResultSet; |
6 | import java.sql.SQLException; | 6 | import java.sql.SQLException; |
7 | 7 | ||
8 | /** | ||
9 | * exécuter des requêtes SQL: | ||
10 | * connexion avec JDBC => préparation de la requête => exécution | ||
11 | * => copie du ResultSet dans une ArrayList d'HashMap => fermeture de la connexion | ||
12 | */ | ||
8 | public class SQLexecutor extends JDBC | 13 | public class SQLexecutor extends JDBC |
9 | { | 14 | { |
15 | // constructeur par défaut | ||
16 | |||
10 | /** | 17 | /** |
11 | * Exécute une requête SQL et retourne le résultat si applicable. | 18 | * Exécute une requête SQL et retourne le résultat si applicable. |
12 | * @param sql requête avec des ? | 19 | * @param sql requête avec des ? |
13 | * @param params Object... permet d'ajouter autant de paramètres qu'on veut et ça fait un tableau | 20 | * @param params nombre libre de paramètres, "Object..." permet de créer un tableau à partir des paramètres |
14 | * @return Un ResultSet si la requête est un SELECT, sinon null | 21 | * @return ResultSet si la requête est un SELECT, null sinon |
15 | * @throws SQLException en cas d'erreur SQL | 22 | * @throws SQLException en cas d'erreur SQL |
16 | * @throws ClassNotFoundException pour DriverManager.getConnection | 23 | * @throws ClassNotFoundException pour DriverManager.getConnection |
17 | */ | 24 | */ |
@@ -24,26 +31,19 @@ public class SQLexecutor extends JDBC | |||
24 | try { | 31 | try { |
25 | connection = getConnection(); | 32 | connection = getConnection(); |
26 | boolean isSelect = sql.trim().toLowerCase().startsWith("select"); | 33 | boolean isSelect = sql.trim().toLowerCase().startsWith("select"); |
27 | 34 | ||
35 | statement = connection.prepareStatement(sql); | ||
28 | if (params.length > 0) | 36 | if (params.length > 0) |
29 | { | 37 | { |
30 | int option; | 38 | // if(isSelect) |
31 | if(isSelect) | 39 | // => ResultSet.TYPE_SCROLL_INSENSITIVE; |
32 | { | 40 | // navigation possible dans le ResultSet: next(), previous(), absolute(); |
33 | option = ResultSet.TYPE_SCROLL_INSENSITIVE; | 41 | // ResultSet non modifiable en cas d'accès concurrent en mémoire |
34 | // navigation possible dans le ResultSet: next(), previous(), absolute(); | 42 | // => PreparedStatement.NO_GENERATED_KEYS; |
35 | // ResultSet non modifiable en cas d'accès concurrent en mémoire | 43 | // optimisation en ne retournant pas les clé générés lors d'un INSERT (RETURN_GENERATED_KEYS) |
36 | } | 44 | // statement = connection.prepareStatement(sql, isSelect ? ResultSet.TYPE_SCROLL_INSENSITIVE : PreparedStatement.NO_GENERATED_KEYS); |
37 | else | 45 | |
38 | { | ||
39 | option = PreparedStatement.NO_GENERATED_KEYS; | ||
40 | // optimisation en ne retournant pas les clé générés lors d'un INSERT (RETURN_GENERATED_KEYS) | ||
41 | } | ||
42 | statement = connection.prepareStatement(sql, option); | ||
43 | //isSelect ? ResultSet.TYPE_SCROLL_INSENSITIVE : PreparedStatement.NO_GENERATED_KEYS); | ||
44 | this.setParameters(statement, params); | 46 | this.setParameters(statement, params); |
45 | } else { | ||
46 | statement = connection.prepareStatement(sql); | ||
47 | } | 47 | } |
48 | 48 | ||
49 | if(isSelect) { | 49 | if(isSelect) { |
@@ -51,17 +51,15 @@ public class SQLexecutor extends JDBC | |||
51 | ResultObject result = new ResultObject(resultSet); | 51 | ResultObject result = new ResultObject(resultSet); |
52 | resultSet.close(); | 52 | resultSet.close(); |
53 | return result; | 53 | return result; |
54 | } else { | 54 | } |
55 | else { | ||
55 | statement.executeUpdate(); | 56 | statement.executeUpdate(); |
56 | return null; | 57 | return null; |
57 | } | 58 | } |
58 | } finally { | 59 | } |
60 | finally { | ||
59 | statement.close(); | 61 | statement.close(); |
60 | connection.close(); | 62 | connection.close(); |
61 | // if (resultSet == null) { | ||
62 | // statement.close(); | ||
63 | // connection.close(); | ||
64 | // } | ||
65 | } | 63 | } |
66 | } | 64 | } |
67 | 65 | ||