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

changeset 124
ed2e7aef2a3e
parent 75
33b6843fdf8a
child 128
947d0f6a6a83
equal deleted inserted replaced
123:c27eee1259bd 124:ed2e7aef2a3e
36 import java.sql.ResultSet; 36 import java.sql.ResultSet;
37 import java.sql.SQLException; 37 import java.sql.SQLException;
38 import java.util.ArrayList; 38 import java.util.ArrayList;
39 import java.util.List; 39 import java.util.List;
40 import java.util.Objects; 40 import java.util.Objects;
41 import java.util.Optional;
41 42
42 import static de.uapcore.lightpit.dao.Functions.setStringOrNull; 43 import static de.uapcore.lightpit.dao.Functions.setStringOrNull;
43 44
44 public final class PGUserDao implements UserDao { 45 public final class PGUserDao implements UserDao {
45 46
46 private final PreparedStatement insert, update, list, find; 47 private final PreparedStatement insert, update, list, find, findByUsername;
47 48
48 public PGUserDao(Connection connection) throws SQLException { 49 public PGUserDao(Connection connection) throws SQLException {
49 list = connection.prepareStatement( 50 list = connection.prepareStatement(
50 "select userid, username, lastname, givenname, mail " + 51 "select userid, username, lastname, givenname, mail " +
51 "from lpit_user where userid >= 0 " + 52 "from lpit_user where userid >= 0 " +
52 "order by username"); 53 "order by username");
53 find = connection.prepareStatement( 54 find = connection.prepareStatement(
54 "select userid, username, lastname, givenname, mail " + 55 "select userid, username, lastname, givenname, mail " +
55 "from lpit_user where userid = ? "); 56 "from lpit_user where userid = ? ");
57
58 findByUsername = connection.prepareStatement(
59 "select userid, username, lastname, givenname, mail " +
60 "from lpit_user where lower(username) = lower(?) ");
56 61
57 insert = connection.prepareStatement("insert into lpit_user (username, lastname, givenname, mail) values (?, ?, ?, ?)"); 62 insert = connection.prepareStatement("insert into lpit_user (username, lastname, givenname, mail) values (?, ?, ?, ?)");
58 update = connection.prepareStatement("update lpit_user set lastname = ?, givenname = ?, mail = ? where userid = ?"); 63 update = connection.prepareStatement("update lpit_user set lastname = ?, givenname = ?, mail = ? where userid = ?");
59 } 64 }
60 65
109 } else { 114 } else {
110 return null; 115 return null;
111 } 116 }
112 } 117 }
113 } 118 }
119
120 @Override
121 public Optional<User> findByUsername(String username) throws SQLException {
122 findByUsername.setString(1, username);
123 try (var result = findByUsername.executeQuery()) {
124 if (result.next()) {
125 return Optional.of(mapColumns(result));
126 } else {
127 return Optional.empty();
128 }
129 }
130 }
114 } 131 }

mercurial