package ua.sergiishapoval.carrental.dao; import ua.sergiishapoval.carrental.model.User; import java.sql.*; import java.util.ResourceBundle; /** * Created by Сергей on 22.12.2014. */ public class DaoUser { Connection connection; final static ResourceBundle resourceBundle = ResourceBundle.getBundle("sqlstatements"); public DaoUser() { } final static String INSERT_USER = resourceBundle.getString("INSERT_USER"); final static String FIND_USER_BY_EMAIL = resourceBundle.getString("FIND_USER_BY_EMAIL"); final static String FIND_USER_BY_ID = resourceBundle.getString("FIND_USER_BY_ID"); final static String FIND_USER_WHERE_EMAIL_AND_PASSWORD = resourceBundle.getString("FIND_USER_WHERE_EMAIL_AND_PASSWORD"); public void setConnection(Connection connection) { this.connection = connection; } public void add(User user) throws SQLException { PreparedStatement preparedStatement = connection.prepareStatement(INSERT_USER); preparedStatement.setString(1, user.getFirstname()); preparedStatement.setString(2, user.getLastname()); preparedStatement.setString(3, user.getEmail()); preparedStatement.setString(4, user.getPassport()); preparedStatement.setString(5, user.getPassword()); preparedStatement.setBoolean(6, user.getIsAdmin()); preparedStatement.executeUpdate(); } public boolean findByEmail(User user) throws SQLException { PreparedStatement preparedStatement = connection.prepareStatement(FIND_USER_BY_EMAIL); preparedStatement.setString(1, user.getEmail()); ResultSet resultSet = preparedStatement.executeQuery(); if (resultSet.next() ){ setProps(user, resultSet); return true; } return false; } public User findById(int userId) throws SQLException { User user = new User(); PreparedStatement preparedStatement = connection.prepareStatement(FIND_USER_BY_ID); preparedStatement.setInt(1, userId); ResultSet resultSet = preparedStatement.executeQuery(); if (resultSet.next()) { setProps(user, resultSet); } return user; } public boolean findByEmailAndPassword(User user) throws SQLException { PreparedStatement preparedStatement = connection.prepareStatement(FIND_USER_WHERE_EMAIL_AND_PASSWORD); preparedStatement.setString(1, user.getEmail()); preparedStatement.setString(2, user.getPassword()); ResultSet resultSet = preparedStatement.executeQuery(); if (resultSet.next() ){ setProps(user, resultSet); return true; } return false; } private void setProps(User user, ResultSet resultSet) throws SQLException { user.setFirstname(resultSet.getString("firstname")); user.setLastname(resultSet.getString("lastname")); user.setPassport(resultSet.getString("passport")); user.setPassword(resultSet.getString("password")); user.setEmail(resultSet.getString("email")); user.setUserId(resultSet.getInt("user_id")); user.setIsAdmin(resultSet.getBoolean("is_admin")); } }