- Timestamp:
- 2013-06-13T13:13:46+12:00 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
main/trunk/greenstone3/src/java/org/greenstone/gsdl3/util/DerbyWrapper.java
r27316 r27617 21 21 import java.sql.Connection; 22 22 import java.sql.DriverManager; 23 import java.sql.PreparedStatement; 23 24 import java.sql.ResultSet; 24 25 import java.sql.SQLException; … … 36 37 static final String USERS = "users"; 37 38 static final String ROLES = "roles"; 39 static final String DATA = "data"; 38 40 private Connection conn = null; 39 41 private Statement state = null; … … 142 144 state.execute("create table users (username varchar(40) not null, password varchar(40) not null, accountstatus varchar(10), comment varchar(100), email varchar(40), primary key(username))"); 143 145 state.execute("create table roles (username varchar(40) not null, role varchar(40) not null, primary key (username, role))"); 146 state.execute("create table data (username varchar(40) not null, name varchar(128) not null, value clob, primary key (username, name))"); 144 147 state.execute("insert into " + USERS + " values ('admin', '" + Authentication.hashPassword("admin") + "', 'true', 'change the password for this account as soon as possible', '')"); 145 148 state.execute("insert into " + ROLES + " values ('admin', 'administrator')"); … … 174 177 for (HashMap<String, String> user : users) 175 178 { 176 ResultSet gs = state.executeQuery("SELECT role FROM rolesWHERE username = '" + user.get("username") + "'");179 ResultSet gs = state.executeQuery("SELECT role FROM " + ROLES + " WHERE username = '" + user.get("username") + "'"); 177 180 String group = ""; 178 181 while (gs.next()) … … 196 199 return userQueryResult; 197 200 } 201 } 202 203 public boolean addUserData(String username, String name, String value) 204 { 205 //Check if we already have a value under this name 206 boolean found = false; 207 try 208 { 209 ResultSet rs = state.executeQuery("SELECT * FROM " + DATA + " WHERE username='" + username + "' AND name='" + name + "'"); 210 if (rs.next()) 211 { 212 found = true; 213 } 214 else 215 { 216 found = false; 217 } 218 } 219 catch (Exception ex) 220 { 221 System.out.println("exception thrown:"); 222 if (ex instanceof SQLException) 223 { 224 printSQLError((SQLException) ex); 225 } 226 else 227 { 228 ex.printStackTrace(); 229 } 230 closeDatabase(); 231 System.out.println("Error:" + ex.getMessage()); 232 return false; 233 } 234 235 try 236 { 237 if (!found) 238 { 239 PreparedStatement stmt = null; 240 stmt = conn.prepareStatement("INSERT INTO " + DATA + " VALUES (?, ?, ?)"); 241 stmt.setString(1, username); 242 stmt.setString(2, name); 243 stmt.setString(3, value); 244 stmt.executeUpdate(); 245 } 246 else 247 { 248 PreparedStatement stmt = null; 249 stmt = conn.prepareStatement("UPDATE " + DATA + " SET value=? WHERE username=? AND name=?"); 250 stmt.setString(1, value); 251 stmt.setString(2, username); 252 stmt.setString(3, name); 253 stmt.executeUpdate(); 254 } 255 } 256 catch (Exception ex) 257 { 258 System.out.println("exception thrown:"); 259 if (ex instanceof SQLException) 260 { 261 printSQLError((SQLException) ex); 262 } 263 else 264 { 265 ex.printStackTrace(); 266 } 267 closeDatabase(); 268 System.out.println("Error:" + ex.getMessage()); 269 return false; 270 } 271 return true; 272 } 273 274 public String getUserData(String username, String name) 275 { 276 try 277 { 278 ResultSet rs = state.executeQuery("SELECT * FROM " + DATA + " WHERE username='" + username + "' AND name='" + name + "'"); 279 if (rs.next()) 280 { 281 return rs.getString("value"); 282 } 283 } 284 catch (Exception ex) 285 { 286 System.out.println("exception thrown:"); 287 if (ex instanceof SQLException) 288 { 289 printSQLError((SQLException) ex); 290 } 291 else 292 { 293 ex.printStackTrace(); 294 } 295 closeDatabase(); 296 System.out.println("Error:" + ex.getMessage()); 297 } 298 return null; 198 299 } 199 300
Note:
See TracChangeset
for help on using the changeset viewer.