while (true) {
System.out.printf("로그인 아이디 : ");
loginId = sc.nextLine();
if (loginId.trim().length() == 0) {
System.out.println("아이디를 입력해주세요.");
continue;
}
break;
}
while (true) {
System.out.printf("로그인 패스워드 : ");
loginPw = sc.nextLine();
if (loginPw.trim().length() == 0) {
System.out.println("패스워드를 입력해주세요.");
continue;
}
boolean loginPwCheck = true;
while (true) {
System.out.printf("로그인 패스워드 확인 : ");
loginPwConfirm = sc.nextLine();
if (loginPwConfirm.trim().length() == 0) {
System.out.println("패스워드 확인을 입력해주세요.");
continue;
}
if (loginPw.equals(loginPwConfirm) == false) {
System.out.println("패스워드가 일치 하지 않습니다.
다시 입력해주세요.");
loginPwCheck = false;
}
break;
}
if (loginPwCheck) {
break;
}
}
if (loginId.trim().length() == 0) , 아이디가 공백이면 다시 입력받도록 구현 비밀번호,
비밀번호 확인도 마찬가지로 공백이면 continue 하여 각각 비밀번호와, 비밀번호 확인만 다시 입력받도록 구현
공백만 아니라면 일단 패스워드,패스워드 확인을 받고 boolean loginPwCheck 의 값이 비밀번호와 비밀번호확인이 일치하지 않을때 false를 대입한다. loginPwCheck가 true 일때만 while문 종료하게 구현, loginPwCheck가 false이면 다시 비밀번호부터 다시 입력받도록 구현
SecSql sql = new SecSql();
sql.append("SELECT COUNT(*) > 0");
sql.append(" FROM `member`");
sql.append(" WHERE loginId = ?", loginId);
boolean isLoginIdDup = DBUtil.selectRowBooleanValue(conn, sql);
if(isLoginIdDup) {
System.out.printf("%s는(은) 이미 사용 중인 아이디가 있습니다.\n", loginId);
continue;
}
Boolean 에서 0은 false, 1은 true 이다.
SELECT COUNT(*) > 0 은 COUNT(*)이 0보다 크면 1 이고 , COUNT(*) 가 0보다 크지 않으면 0 이다.
DBUtil.selectRowBooleanValue(conn, sql)의 값이 1(true)이 나오면 사용중인 아이디가 있다는것.
App에 기능이 너무 커지므로 각각의 Controller컨트롤러로 이전해야한다.
App에서는 직접적인 기능을 수행 하면 안된다.
private int action(Connection conn, Scanner sc, String cmd) {
MemberController memberController = new MemberController();
memberController.setConn(conn);
memberController.setSc(sc);
if (cmd.equals("exit")) {
System.out.println("프로그램을 종료합니다");
return -1;
}
if (cmd.equals("member join")) {
memberController.doJoin();
public class MemberController {
protected Connection conn;
protected Scanner sc;
public void setConn(Connection conn) {
this.conn = conn;
}
public void setSc(Scanner sc) {
this.sc = sc;
}
public void doJoin() {~~~~~
~~~~~~~~~
if (cmd.equals("member join")) {
memberController.doJoin();
} else if (cmd.equals("article write")) {
articleController.doWrtie();
} else if (cmd.startsWith("article delete ")) {
articleController.doDelete(cmd);
} else if (cmd.startsWith("article modify ")) {
articleController.doModify(cmd);
} else if (cmd.equals("article list")) {
articleController.showList(cmd);
} else if (cmd.startsWith("article detail ")) {
articleController.showDetail(cmd);
}else {
System.out.println("존재하지 않는 명령어 입니다.");
}
Main App디스패처 서블릿각각의 컨트롤러 - 고객의 요청받고서비스를 - 메인로직(판단)DAO