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.appointment.business.localization;
35
36 import java.sql.Statement;
37
38 import fr.paris.lutece.portal.service.plugin.Plugin;
39 import fr.paris.lutece.util.sql.DAOUtil;
40
41 public final class LocalizationDAO implements ILocalizationDAO
42 {
43
44 private static final String SQL_QUERY_INSERT = "INSERT INTO appointment_localization (longitude, latitude, address, id_form) VALUES ( ?, ?, ?, ?)";
45 private static final String SQL_QUERY_UPDATE = "UPDATE appointment_localization SET longitude = ?, latitude = ?, address = ?, id_form = ? WHERE id_localization = ?";
46 private static final String SQL_QUERY_DELETE = "DELETE FROM appointment_localization WHERE id_localization = ?";
47 private static final String SQL_QUERY_DELETE_BY_ID_FORM = "DELETE FROM appointment_localization WHERE id_form = ?";
48 private static final String SQL_QUERY_SELECT_COLUMNS = "SELECT id_localization, longitude, latitude, address, id_form FROM appointment_localization";
49 private static final String SQL_QUERY_SELECT = SQL_QUERY_SELECT_COLUMNS + " WHERE id_localization = ?";
50 private static final String SQL_QUERY_SELECT_BY_ID_FORM = SQL_QUERY_SELECT_COLUMNS + " WHERE id_form = ?";
51
52 @Override
53 public void insert( Localization localization, Plugin plugin )
54 {
55 try ( DAOUtil daoUtil = buildDaoUtil( SQL_QUERY_INSERT, localization, plugin, true ) )
56 {
57 daoUtil.executeUpdate( );
58 if ( daoUtil.nextGeneratedKey( ) )
59 {
60 localization.setIdLocalization( daoUtil.getGeneratedKeyInt( 1 ) );
61 }
62 }
63 }
64
65 @Override
66 public void update( Localization localization, Plugin plugin )
67 {
68 try ( DAOUtil daoUtil = buildDaoUtil( SQL_QUERY_UPDATE, localization, plugin, false ) )
69 {
70 daoUtil.executeUpdate( );
71 }
72 }
73
74 @Override
75 public void delete( int nIdLocalization, Plugin plugin )
76 {
77 try ( DAOUtil daoUtil = new DAOUtil( SQL_QUERY_DELETE, plugin ) )
78 {
79 daoUtil.setInt( 1, nIdLocalization );
80 daoUtil.executeUpdate( );
81 }
82 }
83
84 @Override
85 public void deleteByIdForm( int nIdForm, Plugin plugin )
86 {
87 try ( DAOUtil daoUtil = new DAOUtil( SQL_QUERY_DELETE_BY_ID_FORM, plugin ) )
88 {
89 daoUtil.setInt( 1, nIdForm );
90 daoUtil.executeUpdate( );
91 }
92 }
93
94 @Override
95 public Localization select( int nIdLocalization, Plugin plugin )
96 {
97 Localization localization = null;
98 try ( DAOUtil daoUtil = new DAOUtil( SQL_QUERY_SELECT, plugin ) )
99 {
100 daoUtil.setInt( 1, nIdLocalization );
101 daoUtil.executeQuery( );
102 if ( daoUtil.next( ) )
103 {
104 localization = buildLocalization( daoUtil );
105 }
106 }
107 return localization;
108 }
109
110 @Override
111 public Localization findByIdForm( int nIdForm, Plugin plugin )
112 {
113 Localization localization = null;
114 try ( DAOUtil daoUtil = new DAOUtil( SQL_QUERY_SELECT_BY_ID_FORM, plugin ) )
115 {
116 daoUtil.setInt( 1, nIdForm );
117 daoUtil.executeQuery( );
118 if ( daoUtil.next( ) )
119 {
120 localization = buildLocalization( daoUtil );
121 }
122 }
123 return localization;
124 }
125
126
127
128
129
130
131
132
133 private Localization buildLocalization( DAOUtil daoUtil )
134 {
135 int nIndex = 1;
136 Localizationment/business/localization/Localization.html#Localization">Localization localization = new Localization( );
137 localization.setIdLocalization( daoUtil.getInt( nIndex++ ) );
138 localization.setLongitude( daoUtil.getDouble( nIndex++ ) );
139 localization.setLatitude( daoUtil.getDouble( nIndex++ ) );
140 localization.setAddress( daoUtil.getString( nIndex++ ) );
141 localization.setIdForm( daoUtil.getInt( nIndex ) );
142 return localization;
143 }
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159 private DAOUtil buildDaoUtil( String query, Localization localization, Plugin plugin, boolean isInsert )
160 {
161 int nIndex = 1;
162 DAOUtil daoUtil = null;
163 if ( isInsert )
164 {
165 daoUtil = new DAOUtil( query, Statement.RETURN_GENERATED_KEYS, plugin );
166 }
167 else
168 {
169 daoUtil = new DAOUtil( query, plugin );
170 }
171 if ( localization.getLongitude( ) != null )
172 {
173 daoUtil.setDouble( nIndex++, localization.getLongitude( ) );
174 }
175 else
176 {
177 daoUtil.setDoubleNull( nIndex++ );
178 }
179 if ( localization.getLatitude( ) != null )
180 {
181 daoUtil.setDouble( nIndex++, localization.getLatitude( ) );
182 }
183 else
184 {
185 daoUtil.setDoubleNull( nIndex++ );
186 }
187 daoUtil.setString( nIndex++, localization.getAddress( ) );
188 daoUtil.setInt( nIndex++, localization.getIdForm( ) );
189 if ( !isInsert )
190 {
191 daoUtil.setInt( nIndex, localization.getIdLocalization( ) );
192 }
193 return daoUtil;
194 }
195 }