import org.cacert.gigi.util.PasswordHash;
import org.cacert.gigi.util.PasswordStrengthChecker;
-public class User {
+public class User implements IdCachable {
private int id;
query.setString(6, name.suffix);
query.setDate(7, new java.sql.Date(dob.getTime()));
query.setString(8, locale.toString());
- query.execute();
- id = DatabaseConnection.lastInsertId(query);
+ synchronized (User.class) {
+ query.execute();
+ id = DatabaseConnection.lastInsertId(query);
+ myCache.put(this);
+ }
}
public void changePassword(String oldPass, String newPass) throws GigiApiException {
return points;
}
- public static User getById(int id) {
- return new User(id);
- }
-
public EmailAddress[] getEmails() {
try {
PreparedStatement ps = DatabaseConnection.getInstance().prepare("SELECT id FROM emails WHERE memid=? AND deleted=0");
update.executeUpdate();
}
+ private static ObjectCache<User> myCache = new ObjectCache<>();
+
+ public static User getById(int id) {
+ User u = myCache.get(id);
+ if (u == null) {
+ synchronized (User.class) {
+ myCache.put(u = new User(id));
+ }
+ }
+ return u;
+ }
}