src/main/java/de/uapcore/lightpit/dao/postgres/PGUserDao.java

changeset 38
cf85ef18f231
parent 37
fecda0f466e6
child 47
57cfb94ab99f
equal deleted inserted replaced
37:fecda0f466e6 38:cf85ef18f231
34 34
35 import java.sql.Connection; 35 import java.sql.Connection;
36 import java.sql.PreparedStatement; 36 import java.sql.PreparedStatement;
37 import java.sql.ResultSet; 37 import java.sql.ResultSet;
38 import java.sql.SQLException; 38 import java.sql.SQLException;
39 import java.util.Objects;
39 40
40 public final class PGUserDao extends AbstractDao<User> implements UserDao { 41 public final class PGUserDao extends AbstractDao<User> implements UserDao {
41 42
43 private final PreparedStatement insert;
44 private final PreparedStatement update;
45
46 public PGUserDao(Connection connection) throws SQLException {
47 super(connection.prepareStatement("select * from lpit_user where userid >= 0 order by username"));
48
49 insert = connection.prepareStatement("insert into lpit_user (username, lastname, givenname, mail) values (?, ?, ?, ?)");
50 update = connection.prepareStatement("update lpit_user set lastname = ?, givenname = ?, mail = ? where userid = ?");
51 }
52
42 @Override 53 @Override
43 protected User mapColumns(ResultSet result) throws SQLException { 54 public User mapColumns(ResultSet result, String q) throws SQLException {
44 final var user = new User(result.getInt("userid")); 55 final var user = new User(result.getInt(qual(q, "userid")));
45 user.setUsername(result.getString("username")); 56 user.setUsername(result.getString(qual(q, "username")));
46 user.setGivenname(result.getString("givenname")); 57 user.setGivenname(result.getString(qual(q, "givenname")));
47 user.setLastname(result.getString("lastname")); 58 user.setLastname(result.getString(qual(q, "lastname")));
48 return user; 59 return user;
49 } 60 }
50 61
51 @Override 62 @Override
52 protected PreparedStatement listQuery(Connection conn) throws SQLException { 63 public void save(User instance) throws SQLException {
53 return conn.prepareStatement("select * from lpit_user where userid >= 0 order by username"); 64 Objects.requireNonNull(instance.getUsername());
65 insert.setString(1, instance.getUsername());
66 setStringOrNull(insert, 2, instance.getLastname());
67 setStringOrNull(insert, 3, instance.getGivenname());
68 setStringOrNull(insert, 4, instance.getMail());
69 insert.executeUpdate();
70 }
71
72 @Override
73 public boolean update(User instance) throws SQLException {
74 setStringOrNull(update, 1, instance.getLastname());
75 setStringOrNull(update, 2, instance.getGivenname());
76 setStringOrNull(update, 3, instance.getMail());
77 update.setInt(4, instance.getUserID());
78 return update.executeUpdate() > 0;
54 } 79 }
55 } 80 }

mercurial