Не могу выбрать один элемент из postgreSQL

223
18 декабря 2018, 21:30

Выборка всех элементов методом getAll() работает, а выборка методом get() нет. Даже напрямую указываю строку, толку нет.

    @Repository
    public class UserDao {


    //todo 2) изменить подключение к базе через HikariCP к PostgreSQL
    public static void main(String[] args) {
        try {
            UserDao userDao = new UserDao();
            List<User> users = userDao.getAll();

            for (User model : users) {
                System.out.println(model.toString());
            }
        } catch (SQLException e) {
            System.err.println("ошибка");
            e.printStackTrace();
        }
    }
    private Connection connect() {
       Connection connection = null;
       Properties properties = new Properties();
       properties.setProperty("user", username);
       properties.setProperty("password", pass);
       properties.setProperty("ssl", ssl);
       properties.setProperty("sslfactory", sslfactory);
       try {
           connection = DriverManager.getConnection(url,properties);
           System.out.println("connect postgreSQL server successful!!!");
       } catch (SQLException e) {
           System.out.println(e.getMessage());
       }
       return connection;
    }

    public void save(User user) throws SQLException {
        PreparedStatement preparedStatement = null;
        try {
            preparedStatement = connect().prepareStatement("insert into users (login, firstname, lastname, email, password) values (?, ?, ?, ?, ?)");
            preparedStatement.setString(1, user.getLogin());
            preparedStatement.setString(2, user.getFirstName());
            preparedStatement.setString(3, user.getLastName());
            preparedStatement.setString(4, user.getEMail());
            preparedStatement.setString(5, user.getPassword());
            preparedStatement.execute();
            System.out.println("Новый пользователь добавлен в БД");
        }catch (SQLException ex) {
            ex.printStackTrace();
            System.err.println("Ошибка при сохранении!");
        }finally {
            preparedStatement.close();
        }
     }
     public User get(String login) throws SQLException {
        Statement statement = connect().createStatement();
        ResultSet resultSet = null;
        User user = new User();
        try {
            resultSet = statement.executeQuery("select * from users");
            user.setLogin(resultSet.getString(2));
            user.setFirstName(resultSet.getString(3));
            user.setLastName(resultSet.getString(4));
            user.setEMail(resultSet.getString(5));
            user.setPassword(resultSet.getString(6));
        } catch (SQLException ex) {
            System.err.println("ошибка");
            ex.printStackTrace();
            ex.getErrorCode();
            ex.getMessage();
        } finally {
            if (resultSet != null)
                resultSet.close();
            else {
                System.err.println("Ошибка чтения данных с БД!");
            }
            return user;
        }
     }
    public List<User> getAll() throws SQLException{
        Statement statement = connect().createStatement();
        ResultSet resultSet = null;
        List<User> users = new ArrayList();
        try {
            resultSet = statement.executeQuery("select * from users");
            while (resultSet.next()) {
                User user = new User();
                user.setLogin(resultSet.getString(2));
                user.setFirstName(resultSet.getString(3));
                user.setLastName(resultSet.getString(4));
                user.setEMail(resultSet.getString(5));
                user.setPassword(resultSet.getString(6));
                users.add(user);
            }
        } catch (SQLException ex) {
            ex.getErrorCode();
        }
        finally {
            if (resultSet != null)
            resultSet.close();
            else  {
                System.err.println("Ошибка чтения данных с БД!");
            }
        }
        return users;
    }
    public void remove(String login) {
    }
    }
Answer 1
ResultSet resultSet = statement.executeQuery("select * from users");
if (resultSet.next()) {
    user.setLogin(resultSet.getString(2));
    user.setFirstName(resultSet.getString(3));
    user.setLastName(resultSet.getString(4));
    user.setEMail(resultSet.getString(5));
    user.setPassword(resultSet.getString(6));
}

Дело в том, что когда выполняется запрос, указатель ставится до result set'а. Далее его нужно передвигать и проверять имеются ли записи.

Например:

ResultSet rs = stmt.executeQuery("select * from animals");

READ ALSO
SendFile Telegram Bot Java

SendFile Telegram Bot Java

Нужно написать бота, который по команде дает ссылку на скачивание файла с ПКК примеру у меня в файл пишутся логи, нужно чтобы в Telegram при команде...

186
Добавление рядов и колон в таблицу JavaScript

Добавление рядов и колон в таблицу JavaScript

Задача состоит в том, чтобы при нажатии кнопки add создавался ряд и 4 колонки , и записывать туда данные из переменныхВот что имеется на данный...

180
Как загрузить файл в вк через api

Как загрузить файл в вк через api

Как будучи на своей странице в вк с помощью javascript загрузить файл(из url) в документы

224
Как объединить фронтэнд на ReactJS и бэкэнд на NodeJS?

Как объединить фронтэнд на ReactJS и бэкэнд на NodeJS?

В качестве фронтэнда имеется html-страница с исполняемым скриптом bundlejs, в качестве бэкэнда - обычный express-сервер с RESTful API

185