title: How to use dao factory pattern for login and registration dao
body: <p>I am using separate DAO classes for login and registration as follows:</p>
  
  <p>Registration DAO:</p>
  
  <pre><code>public class RegistrationDAO {
  
      public void insert(UserProfile user) {
          try {
              Connection con = DBConnection.getConnection();
              String query = "insert into TBL_USER (USR_FIRST_NAME,USR_LST_NAME,USR_PRIMARY_EMAIL,USR_PASSWORD) values(?,?,?,?)";
              PreparedStatement pst = con.prepareStatement(query);
  
              pst.setString(1, user.getFirstName());
              pst.setString(2, user.getLastName());
              pst.setString(3, user.getEmail());
              pst.setString(4, user.getPassword());
              pst.executeUpdate();
          } catch (Exception e) {
              System.out.println("@@@@Record insertion error in Registration DAO@@@@");
              e.printStackTrace();
          }
      }
  }
  </code></pre>
  
  <p>Login DAO:</p>
  
  <pre><code>public class LoginDAO {
  
      public boolean authenticate(String email, String password)
              throws Exception {
          boolean isUser = false;
          try {
              Connection con = DBConnection.getConnection();
              PreparedStatement statement = con.prepareStatement("select USR_PRIMARY_EMAIL, USR_PASSWORD from TBL_USER where USR_PRIMARY_EMAIL=? and USR_PASSWORD=?");
              statement.setString(1, email);
              statement.setString(2, password);
              ResultSet result = statement.executeQuery();
              if (result.next()) {
                  isUser = true;
                  System.out.println("User authenticated successfully");
              } else {
                  System.out.println("Invalid username or password!");
              }
          } catch (Exception e) {
              System.out.println("DB related Error");
              e.printStackTrace();
          }
          return isUser;
      }
  }
  </code></pre>
  
  <p>Lets say if I change my database from oracle to mySql in future then I should be able to connect. I came to know that DAO factory and DAO interface must be used to connect to multiple databases, but I am not able to figure how to apply it in my case.</p>
  
  <p>Do I need to have two DAO interfaces for RegistatrationDao and LoginDao respectively? what is better way of achieving this?</p>