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 package fr.paris.lutece.plugins.dbpage.business;
35
36 import fr.paris.lutece.portal.service.database.PluginConnectionService;
37 import fr.paris.lutece.portal.service.util.AppException;
38
39 import java.sql.Connection;
40 import java.sql.ResultSet;
41 import java.sql.ResultSetMetaData;
42 import java.sql.SQLException;
43 import java.sql.Statement;
44
45 import java.util.ArrayList;
46 import java.util.List;
47
48
49
50
51
52 public final class DbPageDAO implements IDbPageDAO
53 {
54
55
56
57
58
59
60
61 public List<List<String>> selectRows( String strRequest, PluginConnectionService connectionService )
62 throws SQLException
63 {
64 Connection connection = null;
65 Statement statement = null;
66 String strSQL = strRequest;
67
68 try
69 {
70 connection = connectionService.getConnection( );
71 statement = connection.createStatement( ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY );
72
73 ResultSet resultSet = statement.executeQuery( strSQL );
74 ResultSetMetaData rsmd = resultSet.getMetaData( );
75
76 List<List<String>> listRow = new ArrayList<List<String>>( );
77
78 while ( resultSet.next( ) )
79 {
80 String strValue = null;
81 List<String> listLine = new ArrayList<String>( );
82
83 for ( int i = 1; i <= rsmd.getColumnCount( ); i++ )
84 {
85 if ( resultSet.getObject( rsmd.getColumnName( i ) ) != null )
86 {
87 strValue = resultSet.getObject( rsmd.getColumnName( i ) ).toString( );
88 }
89 else
90 {
91 strValue = " ";
92 }
93
94 listLine.add( strValue );
95 }
96
97 listRow.add( listLine );
98 }
99
100 statement.close( );
101 statement = null;
102
103 return listRow;
104 }
105 finally
106 {
107 try
108 {
109 if ( statement != null )
110 {
111 statement.close( );
112 }
113 }
114 catch ( SQLException e )
115 {
116 throw new AppException( "SQL Error executing command : " + e.toString( ) );
117 }
118
119 connectionService.freeConnection( connection );
120 }
121 }
122 }