1 19 package org.lucane.server.store.sql; 20 21 import java.util.*; 22 import java.sql.*; 23 24 import org.lucane.common.concepts.UserConcept; 25 import org.lucane.server.store.*; 26 import org.lucane.server.*; 27 import org.lucane.server.database.*; 28 29 public class SqlUserStore extends UserStore 30 { 31 private static final String TABLENAME = "users"; 32 private DatabaseAbstractionLayer layer; 33 34 public SqlUserStore() 35 throws Exception 36 { 37 this.layer = Server.getInstance().getDBLayer(); 38 } 39 40 public void storeUser(UserConcept user) 42 throws SQLException 43 { 44 Connection c = layer.getConnection(); 46 PreparedStatement insert = c.prepareStatement("INSERT INTO " + TABLENAME 47 + " VALUES(?, ?, ?, ?, ?, ?, ?, ?);"); 48 49 insert.setString(1, user.getName()); 50 insert.setString(2, user.getPassword()); 51 insert.setString(3, user.getRealName()); 52 insert.setString(4, user.getMailAddress()); 53 insert.setString(5, user.getLanguage()); 54 insert.setInt(6, user.isLocked() ? 1 : 0); 55 insert.setString(7, user.getStartupPlugin()); 56 insert.setString(8, user.getDescription()); 57 insert.execute(); 58 insert.close(); 59 60 c.close(); 61 } 62 63 64 public void updateUser(UserConcept user) 65 throws SQLException 66 { 67 Connection c = layer.getConnection(); 68 Statement s = c.createStatement(); 69 70 try { 72 PreparedStatement delete = c.prepareStatement("DELETE FROM " + TABLENAME 73 + " WHERE login=?"); 74 delete.setString(1, user.getName()); 75 delete.execute(); 76 } catch(SQLException e) { 77 } 79 80 PreparedStatement insert = c.prepareStatement("INSERT INTO " + TABLENAME 82 + " VALUES(?, ?, ?, ?, ?, ?, ?, ?);"); 83 84 insert.setString(1, user.getName()); 85 insert.setString(2, user.getPassword()); 86 insert.setString(3, user.getRealName()); 87 insert.setString(4, user.getMailAddress()); 88 insert.setString(5, user.getLanguage()); 89 insert.setInt(6, user.isLocked() ? 1 : 0); 90 insert.setString(7, user.getStartupPlugin()); 91 insert.setString(8, user.getDescription()); 92 insert.execute(); 93 insert.close(); 94 95 c.close(); 96 } 97 public void removeUser(UserConcept user) 98 throws SQLException 99 { 100 Connection c = layer.getConnection(); 101 102 PreparedStatement delete = c.prepareStatement("DELETE FROM " + TABLENAME 103 + " WHERE login=?"); 104 delete.setString(1, user.getName()); 105 delete.execute(); 106 107 delete = c.prepareStatement("DELETE FROM " + SqlGroupStore.USERLINKS 108 + " WHERE userName=?"); 109 delete.setString(1, user.getName()); 110 delete.execute(); 111 112 c.close(); 113 } 114 115 public UserConcept getUser(String login) 116 throws SQLException 117 { 118 UserConcept user = null; 119 120 Connection c = layer.getConnection(); 121 122 PreparedStatement select = c.prepareStatement( 123 "SELECT login, passwd, realName, mailAddress, language, locked, startup, description" + 124 " FROM " + TABLENAME + 125 " WHERE login=?"); 126 select.setString(1, login); 127 ResultSet rs = select.executeQuery(); 128 129 if(rs.next()) 130 { 131 login = rs.getString(1); 132 String passwd = rs.getString(2); 133 String realName = rs.getString(3); 134 String mailAddress = rs.getString(4); 135 String language = rs.getString(5); 136 boolean locked = (rs.getInt(6) != 0); 137 String startup = rs.getString(7); 138 String description = rs.getString(8); 139 140 user = new UserConcept(login, passwd, realName, mailAddress, language, locked, startup); 141 user.setDescription(description); 142 } 143 144 rs.close(); 145 select.close(); 146 c.close(); 147 148 return user; 149 } 150 151 public Iterator getAllUsers() 152 throws SQLException 153 { 154 ArrayList all = new ArrayList(); 155 156 Connection c = layer.getConnection(); 157 PreparedStatement select = c.prepareStatement( 158 "SELECT login, passwd, realName, mailAddress, language, locked, startup, description FROM " + TABLENAME); 159 ResultSet rs = select.executeQuery(); 160 161 while(rs.next()) 162 { 163 String login = rs.getString(1); 164 String passwd = rs.getString(2); 165 String realName = rs.getString(3); 166 String mailAddress = rs.getString(4); 167 String language = rs.getString(5); 168 boolean locked = (rs.getInt(6) != 0); 169 String startup = rs.getString(7); 170 String description = rs.getString(8); 171 172 UserConcept user = new UserConcept(login, passwd, realName, mailAddress, language, locked, startup); 173 user.setDescription(description); 174 all.add(user); 175 } 176 177 rs.close(); 178 select.close(); 179 c.close(); 180 181 return all.iterator(); 182 } 183 } 184 | Popular Tags |