Я пытаюсь запросить базу данных postgresql, чтобы проверить, совпадает ли то, что вводит пользователь. Например, если пользователь вводит имя пользователя 'user1', я хочу найти столбец имени пользователя в таблице пользователей базы данных, чтобы найти совпадение с именем пользователя.
Моя коллекция баз данных работает, и при использовании запроса (выберите * из пользователей;) я получаю правильную информацию, отображаемую в консоли. Когда я запускаю следующий запрос в PGAdmin или терминале, я получаю правильные результаты (выберите имя пользователя из пользователей, где username = 'user1';).
- В приложении java User.getUserName () - это метод получения, который возвращает имя пользователя, заданное приложением, когда пользователю предлагается ввести свое имя пользователя на странице регистрации учетной записи.
Код следующий:
public static void isUniqueUser(String userName) {
try {
Class.forName("org.postgresql.Driver");
Connection con = DriverManager.getConnection("jdbc:postgresql://localhost:5432/bigday", "postgres", "admin");
PreparedStatement stmt = con.prepareStatement("select from users where username = " + User.getUserName());
ResultSet rs = stmt.executeQuery();
//if name found in db prompt name already taken
while(rs.next()) {
System.out.println("User Name: " + rs.getString(1) + "Password: "
+ rs.getString(2) + "Email: " + rs.getString(3) + "Phone: " + rs.getString(4));
}
}catch (Exception ex) {
System.out.println(ex.getMessage());
}
}
Когда я запускаю запрос в Eclipse, это то, что возвращается в консоли:
ОШИБКА: столбец "user1" не существует
Положение: 36