Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package dao;
- import domain.User;
- import java.sql.Connection;
- import java.sql.PreparedStatement;
- import java.sql.ResultSet;
- import java.sql.SQLException;
- import java.util.ArrayList;
- import java.util.Collection;
- import java.util.List;
- /**
- *
- * Connects to H2 Database and handles all User-related methods.
- *
- * @author Kirby McKenzie
- *
- */
- public class UserJdbcDAO implements UserDAO {
- private String url = "jdbc:h2:tcp://localhost/~/RPM;IFEXISTS=TRUE";
- public UserJdbcDAO() {
- }
- public UserJdbcDAO(String url) {
- this.url = url;
- }
- /**
- *
- * Returns a Collection of Users in the database.
- *
- * @return Collection - A collection of User objects, ordered by email.
- */
- @Override
- public Collection<User> getAllUsers() {
- String sql = "select * from USER order by EMAIL";
- try (
- Connection dbCon = JdbcConnection.getConnection(url);
- PreparedStatement stmt = dbCon.prepareStatement(sql);) {
- ResultSet rs = stmt.executeQuery();
- List<User> users = new ArrayList<>();
- while (rs.next()) {
- String id = rs.getString("USER_ID");
- String email = rs.getString("EMAIL");
- String password = rs.getString("PASSWORD");
- String firstName = rs.getString("FIRST_NAME");
- String lastName = rs.getString("LAST_NAME");
- User userList = new User(email, password, firstName, lastName);
- users.add(userList);
- }
- return users;
- } catch (SQLException ex) {
- throw new DAOException(ex.getMessage(), ex);
- }
- } // end getAllUsers
- /**
- *
- * Saves a user to the database.
- *
- * @param aUser A User object to be saved.
- */
- @Override
- public void saveUser(User aUser) {
- String sql = "insert into USER (USER_ID, EMAIL, PASSWORD, FIRST_NAME, LAST_NAME) "
- + "values (?,?,?,?,?)";
- try (
- Connection dbCon = JdbcConnection.getConnection(url);
- PreparedStatement stmt = dbCon.prepareStatement(sql);) {
- stmt.setString(1, aUser.getUserId());
- stmt.setString(2, aUser.getEmailAddress());
- stmt.setString(3, aUser.getPassword());
- stmt.setString(4, aUser.getFirstName());
- stmt.setString(5, aUser.getLastName());
- stmt.executeUpdate();
- } catch (SQLException ex) {
- throw new DAOException(ex.getMessage(), ex);
- }
- } // end SaveUser
- /**
- *
- * Removes a User from the database.
- *
- * @param userId A User object to be deleted.
- */
- @Override
- public void deleteUser(String userId) {
- String sql = "delete from USER where USER_ID = ?";
- try (
- Connection dbCon = JdbcConnection.getConnection(url);
- PreparedStatement stmt = dbCon.prepareStatement(sql);) {
- stmt.setString(1, userId);
- stmt.executeUpdate();
- } catch (SQLException ex) {
- throw new DAOException(ex.getMessage(), ex);
- }
- } // end deleteUser
- /**
- *
- * Returns a User object with given email.
- *
- * @param aEmail Email of User to return.
- * @return User object with given email.
- */
- @Override
- public User getUserByEmail(String aEmail) {
- String sql = "select * from USER where email = ?";
- try (
- Connection dbCon = JdbcConnection.getConnection(url);
- PreparedStatement stmt = dbCon.prepareStatement(sql);) {
- stmt.setString(1, aEmail);
- ResultSet rs = stmt.executeQuery();
- if (rs.next()) {
- String id = rs.getString("USER_ID");
- String email = rs.getString("EMAIL");
- String password = rs.getString("PASSWORD");
- String firstName = rs.getString("FIRST_NAME");
- String lastName = rs.getString("LAST_NAME");
- User aUser = new User(email, password, firstName, lastName);
- return aUser;
- }
- return null;
- } catch (SQLException ex) {
- throw new DAOException(ex.getMessage(), ex);
- }
- } // end getUserByEmail
- /**
- *
- * Checks if User exists in database and returns the User object. Will print
- * to console if login successful or not.
- *
- * @param aEmail Users Email
- * @param aPassword Users Password
- * @return User object if email and password are correct.
- */
- @Override
- public User login(String aEmail, String aPassword) {
- String sql = "SELECT * FROM USER WHERE EMAIL = ?"
- + "AND PASSWORD = ?";
- try (
- Connection dbCon = JdbcConnection.getConnection(url);
- PreparedStatement stmt = dbCon.prepareStatement(sql);) {
- stmt.setString(1, aEmail);
- stmt.setString(2, aPassword);
- ResultSet rs = stmt.executeQuery();
- while (rs.next()) {
- String id = rs.getString("USER_ID");
- String email = rs.getString("EMAIL");
- String password = rs.getString("PASSWORD");
- String firstName = rs.getString("FIRST_NAME");
- String lastName = rs.getString("LAST_NAME");
- User aUser = new User(email, password, firstName, lastName);
- System.out.println("Login Successful");
- return aUser;
- }
- System.out.println("You are not Authorised! >:/");
- return null;
- } catch (SQLException ex) {
- throw new DAOException(ex.getMessage(), ex);
- }
- } // end login
- @Override
- public void updateUser(String aUser) {
- throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
- } // end updateUser
- } // end UserJdbcDAO class
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement