Bonjour,
Je ne sais pas si c'est le bon forum pour ce post, veuillez le deplacer si ceci n'a pas sa place dans ce forum.
On a une/des fonctions font des extractions de BD dont une est ci-dessous
Je souhaite les migrer en utilisant Spring jdbc, au lieu d'appeler la fonction
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
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36 public Object execute(final Connection connection, String storedProcedureName, String city, String country, String postCode) { List<Object> result = new LinkedList<Object>(); CallableStatement cst = null; ResultSet rs = null; try { cst = connection.prepareCall(storedProcedure); cst.setString(1, city); cst.setString(2, country); cst.setString(3, postCode); rs = cst.executeQuery(); while (rs.next()) { StringBuffer sb = new StringBuffer(); sb .append(rs.getString("Name")).append("\n") .append(rs.getString("Adress")).append("\n") .append(rs.getString("PostCode")).append("\n") .append(rs.getString("Phone")).append("\n") .append(rs.getString("Email")).append("\n"); result.add(sb.toString()); } } catch (Exception e) { System.err.println("Erreur " + e.getMessage()); } finally { try { cst.close(); } catch (Exception e) { try { rs.close(); } catch (Exception e) { } return result; }
J'utilise celle-ci
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 execute(connection, storedProcedureName, city, country, postCode)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 execute(city, country, postCode)
Par contre, au point de vue de performance auriez-vous une idee laquelle est
meuilleure
Merci d'avance
Classes Spring pour jdbc
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 MyStoredProcedure extends StoredProcedure { public MyStoredProcedure(DataSource dataSource, String storedProcedureName) { super(dataSource, storedProcedureName); declareParameter(new SqlReturnResultSet("rs", new MyMapper())); declareParameter(new SqlParameter("City", Types.VARCHAR)); declareParameter(new SqlParameter("Country", Types.VARCHAR)); declareParameter(new SqlParameter("PostCode", Types.VARCHAR)); compile(); } public Map execute(String city, String country, String postCode) } Map inputs = new HashMap(); inputs.put("City", city); inputs.put("Country", country); inputs.put("PostCode", postCode); return super.execute(inputs); } }
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 public class MyMapper implements RowMapper { public Object mapRow(ResultSet rs, int rowNum) throws SQLException { StringBuffer sb = new StringBuffer(); sb .append(rs.getString("Name")).append("\n") .append(rs.getString("Adress")).append("\n") .append(rs.getString("PostCode")).append("\n") .append(rs.getString("Phone")).append("\n") .append(rs.getString("Email")).append("\n"); return sb.toString(); } }
Partager