summaryrefslogtreecommitdiff
path: root/src/dao/SQLexecutor.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/dao/SQLexecutor.java')
-rw-r--r--src/dao/SQLexecutor.java48
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;
5import java.sql.ResultSet; 5import java.sql.ResultSet;
6import java.sql.SQLException; 6import 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 */
8public class SQLexecutor extends JDBC 13public 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