티스토리 뷰
소스 코드
Service.java
package com.emp.service; import java.sql.Date; import java.util.ArrayList; import java.util.List; import java.util.Scanner; import com.emp.domain.Department; import com.emp.domain.Employee; import com.emp.domain.Job; import com.emp.domain.Login; import com.emp.domain.Region; import com.emp.persistance.DepartmentDAO; import com.emp.persistance.EmployeeDAO; import com.emp.persistance.JobDAO; import com.emp.persistance.LoginDAO; import com.emp.persistance.RegionDAO; // 메인 메뉴별 액션 클래스 public class Service { private String id_; private LoginDAO loginDAO = new LoginDAO(); private EmployeeDAO employeeDAO = new EmployeeDAO(); private RegionDAO regionDAO = new RegionDAO(); private DepartmentDAO departmentDAO = new DepartmentDAO(); private JobDAO jobDAO = new JobDAO(); public void login(Scanner sc) { System.out.print("아이디 > "); String id_ = sc.nextLine(); System.out.print("패스워드 > "); String pw_ = sc.nextLine(); int result = this.loginDAO.login(new Login(id_, pw_)); if(result == 0) { System.out.println("아이디 또는 패스워드가 틀렸습니다."); } else { this.id_ = id_; System.out.printf("관리자 '%s' 로그인 되었습니다.\n", this.id_); this.main(sc); } } private void main(Scanner sc) { boolean run = true; while (run) { System.out.println(); System.out.println(); System.out.println(); System.out.println("--------------"); System.out.printf("직원관리 v2.0 (관리자:%s)\n", this.id_); System.out.println("--------------"); System.out.println("1.직원관리 2.기초정보관리 3.관리자정보관리"); System.out.print("선택(0/1) > "); int selectNum = sc.nextInt(); sc.nextLine(); switch (selectNum) { case 1: this.menu1(sc); break; case 2: this.menu2(sc); break; case 3: this.menu3(sc); break; case 0: run = false; System.out.printf("관리자 '%s'가 로그아웃 되었습니다.\n", this.id_); this.id_ = null; break; default: System.out.println("잘못 입력하셨습니다."); break; } } } private void menu1(Scanner sc) { boolean run = true; while (run) { System.out.println("--------------"); System.out.printf("직원관리 v2.0 (관리자:%s) > 직원 관리\n", this.id_); System.out.println("--------------"); System.out.println("1.직원입력 2.직원전체출력 3.직원검색 4.직원삭제"); System.out.print("선택 > "); int selectNum = sc.nextInt(); sc.nextLine(); switch(selectNum) { case 1: this.menu1_sub1(sc); break; case 2: this.menu1_sub2(sc); break; case 3: this.menu1_sub3(sc); break; case 4: this.menu1_sub4(sc); break; case 0: run = false; break; default: System.out.println("잘못 입력하셨습니다."); break; } } } private void menu1_sub1(Scanner sc) { System.out.println("--------------"); System.out.printf("직원관리 v2.0 (관리자:%s) > 직원 관리 > 직원 입력\n", this.id_); System.out.println("--------------"); System.out.print("이름 > "); String name_ = sc.nextLine(); System.out.print("주민등록번호 > "); String ssn = sc.nextLine(); Date hiredate = null; while(true) { try { System.out.print("입사일 > "); hiredate = Date.valueOf(sc.nextLine()); break; } catch (IllegalArgumentException e) { System.out.println("날짜 형식이 잘못되었습니다!"); } } System.out.print("전화번호 > "); String phone = sc.nextLine(); System.out.println("--------------"); this.menu2_sub1_sub2(); System.out.println("--------------"); System.out.print("지역번호 > "); String regId = sc.nextLine(); System.out.println("--------------"); this.menu2_sub2_sub2(); System.out.println("--------------"); System.out.print("부서번호 > "); String deptId = sc.nextLine(); System.out.println("--------------"); this.menu2_sub3_sub2(); System.out.println("--------------"); System.out.print("직위번호 > "); String jobId = sc.nextLine(); System.out.print("기본급 > "); int basicPay = sc.nextInt(); sc.nextLine(); System.out.print("수당 > "); int extraPay = sc.nextInt(); sc.nextLine(); Employee e = new Employee("", name_, ssn, hiredate, phone, regId, deptId, jobId, basicPay, extraPay); int result = this.employeeDAO.add(e); if(result == 1) { System.out.println("신규 회원 정보 입력 완료!"); } else { System.out.println("신규 회원 정보 입력 실패!"); } } private void menu1_sub2(Scanner sc) { boolean run = true; while(run) { System.out.println("--------------"); System.out.printf("직원관리 v2.0 (관리자:%s) > 직원 관리 > 직원 전체 출력\n", this.id_); System.out.println("--------------"); System.out.println("1.사번정렬 2.이름정렬 3.지역명정렬 4.부서명정렬 5.직위명정렬"); System.out.print("선택 > "); int selectNum = sc.nextInt(); sc.nextLine(); switch(selectNum) { case 1: this.menu1_sub2_sub1(sc); break; case 2: this.menu1_sub2_sub2(sc); break; case 3: this.menu1_sub2_sub3(sc); break; case 4: this.menu1_sub2_sub4(sc); break; case 5: this.menu1_sub2_sub5(sc); break; case 0: run = false; break; default: System.out.println("잘못 입력하셨습니다."); break; } } } private void menu1_sub2_sub1(Scanner sc) { List<Employee> list = new ArrayList<Employee>(); System.out.println("--------------"); System.out.printf("직원관리 v2.0 (관리자:%s) > 직원 관리 > 직원 전체 출력 > 사번 정렬\n", this.id_); System.out.println("--------------"); list = this.employeeDAO.sort("empId",""); this.menu1_sub2_print(list); } private void menu1_sub2_sub2(Scanner sc) { List<Employee> list = new ArrayList<Employee>(); System.out.println("--------------"); System.out.printf("직원관리 v2.0 (관리자:%s) > 직원 관리 > 직원 전체 출력 > 이름 정렬\n", this.id_); System.out.println("--------------"); list = this.employeeDAO.sort("name_",""); this.menu1_sub2_print(list); } private void menu1_sub2_sub3(Scanner sc) { List<Employee> list = new ArrayList<Employee>(); System.out.println("--------------"); System.out.printf("직원관리 v2.0 (관리자:%s) > 직원 관리 > 직원 전체 출력 > 지역명 정렬\n", this.id_); System.out.println("--------------"); list = this.employeeDAO.sort("regId",""); this.menu1_sub2_print(list); } private void menu1_sub2_sub4(Scanner sc) { List<Employee> list = new ArrayList<Employee>(); System.out.println("--------------"); System.out.printf("직원관리 v2.0 (관리자:%s) > 직원 관리 > 직원 전체 출력 > 부서명 정렬\n", this.id_); System.out.println("--------------"); list = this.employeeDAO.sort("deptId",""); this.menu1_sub2_print(list); } private void menu1_sub2_sub5(Scanner sc) { List<Employee> list = new ArrayList<Employee>(); System.out.println("--------------"); System.out.printf("직원관리 v2.0 (관리자:%s) > 직원 관리 > 직원 전체 출력 > 직위명 정렬\n", this.id_); System.out.println("--------------"); list = this.employeeDAO.sort("jobId",""); this.menu1_sub2_print(list); } private void menu1_sub2_print(List<Employee> list) { if(list.size() > 0) { System.out.printf("전체 인원 : %d명\n", list.size()); System.out.println("--------------"); System.out.println("사번 / 이름 / 주민번호 / 입사일 / 전화번호 / 지역명 / 부서명 / 직위명 / 기본급 / 수당 / 급여"); for(Employee e : list) { System.out.println(e.print1()); } } else { System.out.println("검색 결과가 없습니다."); } } private void menu1_sub3(Scanner sc) { boolean run = true; while(run) { System.out.println("--------------"); System.out.printf("직원관리 v2.0 (관리자:%s) > 직원 관리 > 직원 검색\n", this.id_); System.out.println("--------------"); System.out.println("1.사번 검색 2.이름 검색 3.지역명 검색 4.부서명 검색 5.직위명 검색"); System.out.print("선택 > "); int selectNum = sc.nextInt(); sc.nextLine(); switch(selectNum) { case 1: this.menu1_sub3_sub1(sc); break; case 2: this.menu1_sub3_sub2(sc); break; case 3: this.menu1_sub3_sub3(sc); break; case 4: this.menu1_sub3_sub4(sc); break; case 5: this.menu1_sub3_sub5(sc); break; case 0: run = false; break; default: System.out.println("잘못 입력하셨습니다."); break; } } } private void menu1_sub3_sub1(Scanner sc) { List<Employee> list = new ArrayList<Employee>(); System.out.println("--------------"); System.out.printf("직원관리 v2.0 (관리자:%s) > 직원 관리 > 직원 검색 > 사번 검색\n", this.id_); System.out.println("--------------"); System.out.print("사번 > "); String empId = sc.nextLine(); list = this.employeeDAO.search("empId", empId); this.menu1_sub2_print(list); } private void menu1_sub3_sub2(Scanner sc) { List<Employee> list = new ArrayList<Employee>(); System.out.println("--------------"); System.out.printf("직원관리 v2.0 (관리자:%s) > 직원 관리 > 직원 검색 > 이름 검색\n", this.id_); System.out.println("--------------"); System.out.print("이름 > "); String name_ = sc.nextLine(); list = this.employeeDAO.search("name_", name_); this.menu1_sub2_print(list); } private void menu1_sub3_sub3(Scanner sc) { List<Employee> list = new ArrayList<Employee>(); System.out.println("--------------"); System.out.printf("직원관리 v2.0 (관리자:%s) > 직원 관리 > 직원 검색 > 지역명 검색\n", this.id_); System.out.println("--------------"); System.out.print("지역명 > "); String reg_name = sc.nextLine(); list = this.employeeDAO.search("reg_name", reg_name); this.menu1_sub2_print(list); } private void menu1_sub3_sub4(Scanner sc) { List<Employee> list = new ArrayList<Employee>(); System.out.println("--------------"); System.out.printf("직원관리 v2.0 (관리자:%s) > 직원 관리 > 직원 검색 > 부서명 검색\n", this.id_); System.out.println("--------------"); System.out.print("부서명 > "); String dept_name = sc.nextLine(); list = this.employeeDAO.search("dept_name", dept_name); this.menu1_sub2_print(list); } private void menu1_sub3_sub5(Scanner sc) { List<Employee> list = new ArrayList<Employee>(); System.out.println("--------------"); System.out.printf("직원관리 v2.0 (관리자:%s) > 직원 관리 > 직원 검색 > 직위명 검색\n", this.id_); System.out.println("--------------"); System.out.print("직위명 > "); String job_title = sc.nextLine(); list = this.employeeDAO.search("job_title", job_title); this.menu1_sub2_print(list); } private void menu1_sub4(Scanner sc) { System.out.println("--------------"); System.out.printf("직원관리 v2.0 (관리자:%s) > 직원 관리 > 직원 삭제\n", this.id_); System.out.println("--------------"); System.out.print("사번 > "); String empId = sc.nextLine(); int result = this.employeeDAO.remove(empId); if(result == 1) { System.out.println("회원 삭제 성공!"); } else { System.out.println("회원 삭제 실패!"); } } private void menu2(Scanner sc) { boolean run = true; while (run) { System.out.println("--------------"); System.out.printf("직원관리 v2.0 (관리자:%s) > 기초 정보 관리\n", this.id_); System.out.println("--------------"); System.out.println("1.지역관리 2.부서관리 3.직위관리"); System.out.print("선택 > "); int selectNum = sc.nextInt(); sc.nextLine(); switch(selectNum) { case 1: this.menu2_sub1(sc); break; case 2: this.menu2_sub2(sc); break; case 3: this.menu2_sub3(sc); break; case 0: run = false; break; default: System.out.println("잘못 입력하셨습니다."); break; } } } private void menu2_sub1_sub1(Scanner sc) { System.out.println("--------------"); System.out.printf("직원관리 v2.0 (관리자:%s) > 기초 정보 관리 > 지역 관리 > 지역 입력\n", this.id_); System.out.println("--------------"); this.menu2_sub1_sub2(); System.out.println("--------------"); System.out.print("신규 지역 이름 > "); String reg_name = sc.nextLine(); Region r = new Region("", reg_name); int result = regionDAO.add(r); if(result == 1) { System.out.println("신규 지역 정보 입력 완료!"); } else { System.out.println("신규 지역 정보 입력 실패!"); } } private void menu2_sub1_sub2() { List<Region> list = new ArrayList<Region>(); list = this.regionDAO.list1(); if(list.size() > 0) { System.out.println("지역번호 / 지역명"); for(Region r : list) { System.out.print(r.print1()); } } else { System.out.println("검색 결과가 없습니다."); } } private void menu2_sub1_sub3(Scanner sc) { List<Region> list = new ArrayList<Region>(); list = this.regionDAO.list2(); if(list.size() > 0) { System.out.println("지역번호 / 지역명 / 삭제가능여부"); for(Region r : list) { System.out.print(r.print1()); } System.out.print("지역번호 > "); String regId = sc.nextLine(); Region r = new Region(regId, ""); int result = this.regionDAO.remove(r); if(result != 0) { System.out.printf("%s 지역이 삭제되었습니다.\n", regId); } else { System.out.println("삭제에 실패했습니다."); } } else { System.out.println("검색 결과가 없습니다."); } } private void menu2_sub1(Scanner sc) { boolean run = true; while (run) { System.out.println("--------------"); System.out.printf("직원관리 v2.0 (관리자:%s) > 기초 정보 관리 > 지역 관리\n", this.id_); System.out.println("--------------"); System.out.println("1.지역입력 2.지역출력 3.지역삭제"); System.out.print("선택 > "); int selectNum = sc.nextInt(); sc.nextLine(); switch(selectNum) { case 1: this.menu2_sub1_sub1(sc); break; case 2: this.menu2_sub1_sub2(); break; case 3: this.menu2_sub1_sub3(sc); break; case 0: run = false; break; default: System.out.println("잘못 입력하셨습니다."); break; } } } private void menu2_sub2(Scanner sc) { boolean run = true; while (run) { System.out.println("--------------"); System.out.printf("직원관리 v2.0 (관리자:%s) > 기초 정보 관리 > 부서 관리\n", this.id_); System.out.println("--------------"); System.out.println("1.부서입력 2.부서출력 3.부서삭제"); System.out.print("선택 > "); int selectNum = sc.nextInt(); sc.nextLine(); switch(selectNum) { case 1: this.menu2_sub2_sub1(sc); break; case 2: this.menu2_sub2_sub2(); break; case 3: this.menu2_sub2_sub3(sc); break; case 0: run = false; break; default: System.out.println("잘못 입력하셨습니다."); break; } } } private void menu2_sub2_sub1(Scanner sc) { System.out.println("--------------"); System.out.printf("직원관리 v2.0 (관리자:%s) > 기초 정보 관리 > 부서 관리 > 부서 입력\n", this.id_); System.out.println("--------------"); this.menu2_sub2_sub2(); System.out.println("--------------"); System.out.print("신규 부서 이름 > "); String dept_name = sc.nextLine(); Department d = new Department("", dept_name); int result = departmentDAO.add(d); if(result == 1) { System.out.println("신규 부서 정보 입력 완료!"); } else { System.out.println("신규 부서 정보 입력 실패!"); } } private void menu2_sub2_sub2() { List<Department> list = new ArrayList<Department>(); list = this.departmentDAO.list1(); if(list.size() > 0) { System.out.println("부서번호 / 부서명"); for(Department d : list) { System.out.print(d.print1()); } } else { System.out.println("검색 결과가 없습니다."); } } private void menu2_sub2_sub3(Scanner sc) { List<Department> list = new ArrayList<Department>(); list = this.departmentDAO.list2(); if(list.size() > 0) { System.out.println("부서번호 / 부서명 / 삭제가능여부"); for(Department d : list) { System.out.print(d.print1()); } System.out.print("부서번호 > "); String deptId = sc.nextLine(); Department d = new Department(deptId, ""); int result = this.departmentDAO.remove(d); if(result != 0) { System.out.printf("%s 부서가 삭제되었습니다.\n", deptId); } else { System.out.println("삭제에 실패했습니다."); } } else { System.out.println("검색 결과가 없습니다."); } } private void menu2_sub3(Scanner sc) { boolean run = true; while (run) { System.out.println("--------------"); System.out.printf("직원관리 v2.0 (관리자:%s) > 기초 정보 관리 > 직위 관리\n", this.id_); System.out.println("--------------"); System.out.println("1.직위입력 2.직위출력 3.직위삭제"); System.out.print("선택 > "); int selectNum = sc.nextInt(); sc.nextLine(); switch(selectNum) { case 1: this.menu2_sub3_sub1(sc); break; case 2: this.menu2_sub3_sub2(); break; case 3: this.menu2_sub3_sub3(sc); break; case 0: run = false; break; default: System.out.println("잘못 입력하셨습니다."); break; } } } private void menu2_sub3_sub1(Scanner sc) { System.out.println("--------------"); System.out.printf("직원관리 v2.0 (관리자:%s) > 기초 정보 관리 > 직위 관리 > 직위 입력\n", this.id_); System.out.println("--------------"); this.menu2_sub3_sub2(); System.out.println("--------------"); System.out.print("신규 직위 이름 > "); String job_title = sc.nextLine(); System.out.print("최소 기본 급여 > "); int min_basicPay = sc.nextInt(); sc.nextLine(); Job j = new Job("", job_title, min_basicPay); int result = this.jobDAO.add(j); if(result == 1) { System.out.println("신규 직위 정보 입력 완료!"); } else { System.out.println("신규 직위 정보 입력 실패!"); } } private void menu2_sub3_sub2() { List<Job> list = new ArrayList<Job>(); list = this.jobDAO.list1(); if(list.size() > 0) { System.out.println("직위번호 / 직위명 / 최소기본급여"); for(Job j : list) { System.out.print(j.print1()); } } else { System.out.println("검색 결과가 없습니다."); } } private void menu2_sub3_sub3(Scanner sc) { List<Job> list = new ArrayList<Job>(); list = this.jobDAO.list2(); if(list.size() > 0) { System.out.println("직위번호 / 직위명 / 최소기본급여 / 삭제가능여부"); for(Job j : list) { System.out.print(j.print1()); } System.out.print("직위번호 > "); String jobId = sc.nextLine(); Job j = new Job(jobId, "", 0); int result = this.jobDAO.remove(j); if(result != 0) { System.out.printf("%s 직위가 삭제되었습니다.\n", jobId); } else { System.out.println("삭제에 실패했습니다."); } } else { System.out.println("검색 결과가 없습니다."); } } private void menu3(Scanner sc) { boolean run = true; while(run) { System.out.println("--------------"); System.out.printf("직원관리 v2.0 (관리자:%s) > 관리자정보관리\n", this.id_); System.out.println("--------------"); System.out.println("1.관리자추가 2.패스워드변경"); System.out.print("선택 > "); int selectNum = sc.nextInt(); sc.nextLine(); switch(selectNum) { case 1: this.menu3_sub1(sc); break; case 2: this.menu3_sub2(sc); break; case 0: run = false; break; default: System.out.println("잘못 입력하셨습니다."); break; } } } private void menu3_sub1(Scanner sc) { System.out.print("아이디 > "); String id_ = sc.nextLine(); System.out.print("패스워드 > "); String pw_ = sc.nextLine(); Login l = new Login(id_, pw_); int result = this.loginDAO.add(l); if(result > 0) { System.out.printf("신규 관리자 '%s'이(가) 추가되었습니다.\n", id_); } else { System.out.println("관리자 추가에 실패했습니다."); } } private void menu3_sub2(Scanner sc) { System.out.print("현재 패스워드 > "); String pw_ = sc.nextLine(); System.out.print("신규 패스워드 > "); String newPw_ = sc.nextLine(); System.out.print("패스워드를 변경할까요(0/1) > "); int selectNum = sc.nextInt(); sc.nextLine(); if(selectNum == 1) { int result = this.loginDAO.change(this.id_, pw_, newPw_); if(result > 0) { System.out.printf("관리자 '%s'의 패스워드가 변경되었습니다.\n", id_); } else { System.out.println("관리자 패스워드 변경에 실패했습니다."); } } else { System.out.println("취소되었습니다."); } } }
'IT 공부 in 교육센터 > JDBC_문제풀이' 카테고리의 다른 글
직원관리 v2.0 (CONSOLE+DATABASE) main (0) | 2018.09.11 |
---|---|
직원관리 v2.0 (CONSOLE+DATABASE) persistance (0) | 2018.09.09 |
직원관리 v2.0 (CONSOLE+DATABASE) domain (0) | 2018.09.08 |
직원관리 v2.0 (CONSOLE+DATABASE) 설계 (0) | 2018.09.08 |
성적관리 v2.4 (CONSOLE+DATABASE) (0) | 2018.09.05 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 일본어
- 저장소생성
- 동사 た
- ない
- 토비의스프링
- Apache24
- mysql 8.0
- 동사의 활용
- Database
- 성적관리
- oracle
- 직원관리
- 동사의활용
- git
- た
- 설치
- 번호자동증가
- PreparedStatement
- た형
- Java
- 초기설정
- て형
- git설치
- 외부접속
- AH02102
- 버전 업그레이드
- 취업성공패키지
- ない형
- 일본어 공부
- JDBC
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
글 보관함