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.adminwall.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
46 public final class LinkDAO implements ILinkDAO
47 {
48
49 private static final String SQL_QUERY_NEW_PK = "SELECT max( id_link ) FROM adminwall_link";
50 private static final String SQL_QUERY_SELECT = "SELECT id_link, post, hashtag FROM adminwall_link WHERE id_link = ?";
51 private static final String SQL_QUERY_INSERT = "INSERT INTO adminwall_link ( id_link, post, hashtag) VALUES ( ?, ?, ?) ";
52 private static final String SQL_QUERY_DELETE = "DELETE FROM adminwall_link WHERE id_link = ? ";
53 private static final String SQL_QUERY_UPDATE = "UPDATE adminwall_link SET id_link = ?, post = ?, hashtag = ? WHERE id_link = ?";
54 private static final String SQL_QUERY_SELECTALL = "SELECT id_link, post, hashtag FROM adminwall_link";
55 private static final String SQL_QUERY_SELECT_TAG = "SELECT id_link, post, hashtag FROM adminwall_link WHERE hashtag= ?";
56
57
58
59
60
61
62 public int newPrimaryKey( Plugin plugin )
63 {
64 DAOUtil daoUtil = new DAOUtil( SQL_QUERY_NEW_PK, plugin );
65 daoUtil.executeQuery( );
66
67 int nKey = 1;
68
69 if ( daoUtil.next( ) )
70 {
71 nKey = daoUtil.getInt( 1 ) + 1;
72 }
73
74 daoUtil.free( );
75
76 return nKey;
77 }
78
79
80
81
82 @Override
83 public void insert( Link link, Plugin plugin )
84 {
85 DAOUtil daoUtil = new DAOUtil( SQL_QUERY_INSERT, plugin );
86
87 link.setIdLink( newPrimaryKey( plugin ) );
88
89 daoUtil.setInt( 1, link.getIdLink( ) );
90 daoUtil.setInt( 2, link.getPost( ) );
91 daoUtil.setInt( 3, link.getHashtag( ) );
92
93 daoUtil.executeUpdate( );
94 daoUtil.free( );
95 }
96
97
98
99
100 @Override
101 public Link load( int nKey, Plugin plugin )
102 {
103 DAOUtil daoUtil = new DAOUtil( SQL_QUERY_SELECT, plugin );
104 daoUtil.setInt( 1, nKey );
105 daoUtil.executeQuery( );
106
107 Link link = null;
108
109 if ( daoUtil.next( ) )
110 {
111 link = new Link( );
112 link.setIdLink( daoUtil.getInt( 1 ) );
113 link.setPost( daoUtil.getInt( 2 ) );
114 link.setHashtag( daoUtil.getInt( 3 ) );
115 }
116
117 daoUtil.free( );
118
119 return link;
120 }
121
122
123
124
125 @Override
126 public void delete( int nLinkId, Plugin plugin )
127 {
128 DAOUtil daoUtil = new DAOUtil( SQL_QUERY_DELETE, plugin );
129 daoUtil.setInt( 1, nLinkId );
130 daoUtil.executeUpdate( );
131 daoUtil.free( );
132 }
133
134
135
136
137 @Override
138 public void store( Link link, Plugin plugin )
139 {
140 DAOUtil daoUtil = new DAOUtil( SQL_QUERY_UPDATE, plugin );
141
142 daoUtil.setInt( 1, link.getIdLink( ) );
143 daoUtil.setInt( 2, link.getPost( ) );
144 daoUtil.setInt( 3, link.getHashtag( ) );
145 daoUtil.setInt( 4, link.getIdLink( ) );
146
147 daoUtil.executeUpdate( );
148 daoUtil.free( );
149 }
150
151
152
153
154 @Override
155 public Collection<Link> selectLinksList( Plugin plugin )
156 {
157 Collection<Link> linkList = new ArrayList<Link>( );
158 DAOUtil daoUtil = new DAOUtil( SQL_QUERY_SELECTALL, plugin );
159 daoUtil.executeQuery( );
160
161 while ( daoUtil.next( ) )
162 {
163 Link link = new Link( );
164
165 link.setIdLink( daoUtil.getInt( 1 ) );
166 link.setPost( daoUtil.getInt( 2 ) );
167 link.setHashtag( daoUtil.getInt( 3 ) );
168
169 linkList.add( link );
170 }
171
172 daoUtil.free( );
173
174 return linkList;
175 }
176
177
178
179
180 @Override
181 public Collection<Link> selectLinksListTag( int hashtag, Plugin plugin )
182 {
183 Collection<Link> linkList = new ArrayList<Link>( );
184 DAOUtil daoUtil = new DAOUtil( SQL_QUERY_SELECT_TAG, plugin );
185 daoUtil.setInt( 1, hashtag );
186 daoUtil.executeQuery( );
187
188 while ( daoUtil.next( ) )
189 {
190 Link link = new Link( );
191
192 link.setIdLink( daoUtil.getInt( 1 ) );
193 link.setPost( daoUtil.getInt( 2 ) );
194 link.setHashtag( daoUtil.getInt( 3 ) );
195
196 linkList.add( link );
197 }
198
199 daoUtil.free( );
200
201 return linkList;
202 }
203 }