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.jasper.business;
35
36 import fr.paris.lutece.portal.service.plugin.Plugin;
37 import fr.paris.lutece.util.sql.DAOUtil;
38
39 import java.util.ArrayList;
40 import java.util.Collection;
41
42
43
44
45 public final class JasperReportDAO implements IJasperReportDAO
46 {
47
48 private static final String SQL_QUERY_NEW_PK = "SELECT max( id_report ) FROM jasper";
49 private static final String SQL_QUERY_SELECT = "SELECT id_report, code, url,pool,file_folder FROM jasper WHERE id_report = ?";
50 private static final String SQL_QUERY_SELECT_BY_DESC = "SELECT id_report, code, url, pool FROM jasper WHERE code = ?";
51 private static final String SQL_QUERY_INSERT = "INSERT INTO jasper ( id_report, code , url ,pool) VALUES ( ?, ? , ?,?) ";
52 private static final String SQL_QUERY_DELETE = "DELETE FROM jasper WHERE id_report = ? ";
53 private static final String SQL_QUERY_UPDATE = "UPDATE jasper SET id_report = ?, code = ? WHERE id_report = ?";
54 private static final String SQL_QUERY_SELECTALL = "SELECT id_report, code, url,pool FROM jasper";
55 private static final String SQL_QUERY_SELECT_FILE_FORMATS = "SELECT file_format FROM jasper_file_format WHERE id_report= ? ";
56
57
58
59
60
61
62
63
64 public int newPrimaryKey( Plugin plugin )
65 {
66 int nKey;
67
68 try ( DAOUtil daoUtil = new DAOUtil( SQL_QUERY_NEW_PK, plugin ) )
69 {
70 daoUtil.executeQuery( );
71
72 if ( !daoUtil.next( ) )
73 {
74
75 nKey = 1;
76 }
77
78 nKey = daoUtil.getInt( 1 ) + 1;
79 }
80
81 return nKey;
82 }
83
84
85
86
87
88
89
90
91
92 public void insert( JasperReport report, Plugin plugin )
93 {
94 try ( DAOUtil daoUtil = new DAOUtil( SQL_QUERY_INSERT, plugin ) )
95 {
96 report.setIdReport( newPrimaryKey( plugin ) );
97
98 daoUtil.setInt( 1, report.getIdReport( ) );
99 daoUtil.setString( 2, report.getCode( ) );
100 daoUtil.setString( 3, report.getUrl( ) );
101 daoUtil.setString( 4, report.getPool( ) );
102
103 daoUtil.executeUpdate( );
104 }
105 }
106
107
108
109
110
111
112
113
114
115
116 public JasperReport load( int nId, Plugin plugin )
117 {
118 JasperReport report = null;
119
120 try ( DAOUtil daoUtil = new DAOUtil( SQL_QUERY_SELECT, plugin ) )
121 {
122 daoUtil.setInt( 1, nId );
123 daoUtil.executeQuery( );
124
125 if ( daoUtil.next( ) )
126 {
127 report = new JasperReport( );
128
129 report.setIdReport( daoUtil.getInt( 1 ) );
130 report.setCode( daoUtil.getString( 2 ) );
131 report.setUrl( daoUtil.getString( 3 ) );
132 report.setPool( daoUtil.getString( 4 ) );
133 report.setFileFolder( daoUtil.getString( 5 ) );
134 report.addFileFormats( loadFileFormats( nId, plugin ) );
135 }
136 }
137
138 return report;
139 }
140
141
142
143
144
145
146
147
148
149
150 public ArrayList<String> loadFileFormats( int nId, Plugin plugin )
151 {
152 ArrayList<String> listFileFormats = new ArrayList<String>( );
153
154 try ( DAOUtil daoUtil = new DAOUtil( SQL_QUERY_SELECT_FILE_FORMATS, plugin ) )
155 {
156 daoUtil.setInt( 1, nId );
157 daoUtil.executeQuery( );
158
159 while ( daoUtil.next( ) )
160 {
161 listFileFormats.add( daoUtil.getString( 1 ) );
162 }
163 }
164
165 return listFileFormats;
166 }
167
168
169
170
171
172
173
174
175
176 public void delete( int nJasperReportId, Plugin plugin )
177 {
178 try ( DAOUtil daoUtil = new DAOUtil( SQL_QUERY_DELETE, plugin ) )
179 {
180 daoUtil.setInt( 1, nJasperReportId );
181 daoUtil.executeUpdate( );
182 }
183 }
184
185
186
187
188
189
190
191
192
193 public void store( JasperReport report, Plugin plugin )
194 {
195 try ( DAOUtil daoUtil = new DAOUtil( SQL_QUERY_UPDATE, plugin ) )
196 {
197 daoUtil.setInt( 1, report.getIdReport( ) );
198 daoUtil.setString( 2, report.getCode( ) );
199 daoUtil.setInt( 3, report.getIdReport( ) );
200
201 daoUtil.executeUpdate( );
202 }
203 }
204
205
206
207
208
209
210
211
212 public Collection<JasperReport> selectJasperReportsList( Plugin plugin )
213 {
214 Collection<JasperReport> reportList = new ArrayList<JasperReport>( );
215
216 try ( DAOUtil daoUtil = new DAOUtil( SQL_QUERY_SELECTALL, plugin ) )
217 {
218 daoUtil.executeQuery( );
219
220 while ( daoUtil.next( ) )
221 {
222 JasperReporter/business/JasperReport.html#JasperReport">JasperReport report = new JasperReport( );
223
224 report.setIdReport( daoUtil.getInt( 1 ) );
225 report.setCode( daoUtil.getString( 2 ) );
226 report.setUrl( daoUtil.getString( 3 ) );
227 report.setPool( daoUtil.getString( 4 ) );
228
229 reportList.add( report );
230 }
231 }
232
233 return reportList;
234 }
235
236 public JasperReport loadByCode( String strKey, Plugin plugin )
237 {
238 JasperReport report = null;
239
240 try ( DAOUtil daoUtil = new DAOUtil( SQL_QUERY_SELECT_BY_DESC, plugin ) )
241 {
242 daoUtil.setString( 1, strKey );
243 daoUtil.executeQuery( );
244 if ( daoUtil.next( ) )
245 {
246 report = new JasperReport( );
247
248 report.setIdReport( daoUtil.getInt( 1 ) );
249 report.setCode( daoUtil.getString( 2 ) );
250 report.setUrl( daoUtil.getString( 3 ) );
251 report.setPool( daoUtil.getString( 4 ) );
252 }
253 }
254
255 return report;
256 }
257 }