-
005. DB 연동 직원 관리 프로그램 구현 (DTO, DAO, PROCESS, MAIN)SsY/Class 2023. 4. 27. 10:42728x90
JDBC05
- DBConn
/*=================== DBConn.java - try ~ catch =====================*/ package com.util; import java.sql.Connection; import java.sql.DriverManager; public class DBConn { private static Connection dbConn; public static Connection getConnection() { try { if (dbConn == null) { String url = "jdbc:oracle:thin:@localhost:1521:xe"; String user = "scott"; String pwd = "tiger"; Class.forName("oracle.jdbc.driver.OracleDriver"); dbConn = DriverManager.getConnection(url, user, pwd); } } catch (Exception e) { System.out.println(e.toString()); } return dbConn; } public static Connection getConnection(String url, String user, String pwd) { try { if (dbConn == null) { Class.forName("oracle.jdbc.driver.OracleDriver"); dbConn = DriverManager.getConnection(url, user, pwd); } } catch (Exception e) { System.out.println(e.toString()); } return dbConn; } public static void close() { try { if (dbConn!=null) { if (!dbConn.isClosed()) dbConn.close(); } } catch (Exception e) { System.out.println(e.toString()); } dbConn = null; } }
SQL DEVELOPER
- 실습 테이블, 시퀀스 생성 및 데이터 입력더보기SELECT USER FROM DUAL; --==>> SCOTT --------------------------------------------------------------------------------------------------- --○ 실습 테이블 생성 CREATE TABLE TBL_CITY ( CITY_ID NUMBER(5) , CITY_NAME VARCHAR2(10) , CONSTRAINT CITY_CITY_ID_PK PRIMARY KEY(CITY_ID) ); --==>> Table TBL_CITY이(가) 생성되었습니다. --○ 시퀀스 생성 CREATE SEQUENCE CITYSEQ NOCACHE; --==>> Sequence CITYSEQ이(가) 생성되었습니다. --○ 데이터 입력 -- 강원 경기 경남 경북 부산 서울 인천 전남 전북 제주 충남 충북 INSERT INTO TBL_CITY(CITY_ID, CITY_NAME) VALUES (CITYSEQ.NEXTVAL, '강원'); INSERT INTO TBL_CITY(CITY_ID, CITY_NAME) VALUES (CITYSEQ.NEXTVAL, '경기'); INSERT INTO TBL_CITY(CITY_ID, CITY_NAME) VALUES (CITYSEQ.NEXTVAL, '경남'); INSERT INTO TBL_CITY(CITY_ID, CITY_NAME) VALUES (CITYSEQ.NEXTVAL, '경북'); INSERT INTO TBL_CITY(CITY_ID, CITY_NAME) VALUES (CITYSEQ.NEXTVAL, '부산'); INSERT INTO TBL_CITY(CITY_ID, CITY_NAME) VALUES (CITYSEQ.NEXTVAL, '서울'); INSERT INTO TBL_CITY(CITY_ID, CITY_NAME) VALUES (CITYSEQ.NEXTVAL, '인천'); INSERT INTO TBL_CITY(CITY_ID, CITY_NAME) VALUES (CITYSEQ.NEXTVAL, '전남'); INSERT INTO TBL_CITY(CITY_ID, CITY_NAME) VALUES (CITYSEQ.NEXTVAL, '전북'); INSERT INTO TBL_CITY(CITY_ID, CITY_NAME) VALUES (CITYSEQ.NEXTVAL, '제주'); INSERT INTO TBL_CITY(CITY_ID, CITY_NAME) VALUES (CITYSEQ.NEXTVAL, '충남'); INSERT INTO TBL_CITY(CITY_ID, CITY_NAME) VALUES (CITYSEQ.NEXTVAL, '충북'); --==>> 1 행 이(가) 삽입되었습니다. * 12 --○ 확인 SELECT * FROM TBL_CITY; --==>> /* 1 강원 2 경기 3 경남 4 경북 5 부산 6 서울 7 인천 8 전남 9 전북 10 제주 11 충남 12 충북 */ --○ 커밋 COMMIT; --==>> 커밋 완료. --------------------------------------------------------------------------------------------------- --○ 실습 테이블 생성 CREATE TABLE TBL_BUSEO ( BUSEO_ID NUMBER(5) , BUSEO_NAME VARCHAR2(20) , CONSTRAINT BUSEO_BUSEO_ID_PK PRIMARY KEY(BUSEO_ID) ); --==>> Table TBL_BUSEO이(가) 생성되었습니다. --○ 시퀀스 생성 CREATE SEQUENCE BUSEOSEQ NOCACHE; --==>> Sequence BUSEOSEQ이(가) 생성되었습니다. --○ 데이터 입력 -- 개발부 기획부 영업부 인사부 자재부 총무부 홍보부 INSERT INTO TBL_BUSEO(BUSEO_ID, BUSEO_NAME) VALUES(BUSEOSEQ.NEXTVAL, '개발부'); INSERT INTO TBL_BUSEO(BUSEO_ID, BUSEO_NAME) VALUES(BUSEOSEQ.NEXTVAL, '기획부'); INSERT INTO TBL_BUSEO(BUSEO_ID, BUSEO_NAME) VALUES(BUSEOSEQ.NEXTVAL, '영업부'); INSERT INTO TBL_BUSEO(BUSEO_ID, BUSEO_NAME) VALUES(BUSEOSEQ.NEXTVAL, '인사부'); INSERT INTO TBL_BUSEO(BUSEO_ID, BUSEO_NAME) VALUES(BUSEOSEQ.NEXTVAL, '자재부'); INSERT INTO TBL_BUSEO(BUSEO_ID, BUSEO_NAME) VALUES(BUSEOSEQ.NEXTVAL, '총무부'); INSERT INTO TBL_BUSEO(BUSEO_ID, BUSEO_NAME) VALUES(BUSEOSEQ.NEXTVAL, '홍보부'); --==>> 1 행 이(가) 삽입되었습니다.* 7 --○ 확인 SELECT * FROM TBL_BUSEO; --==>> /* 1 개발부 2 기획부 3 영업부 4 인사부 5 자재부 6 총무부 7 홍보부 */ --○ 커밋 COMMIT; --==>> 커밋 완료. --------------------------------------------------------------------------------------------------- --○ 실습 테이블 생성 CREATE TABLE TBL_JIKWI ( JIKWI_ID NUMBER(5) , JIKWI_NAME VARCHAR2(20) , MIN_BASICPAY NUMBER(10) , CONSTRAINT JIKWI_JIKWI_ID_PK PRIMARY KEY(JIKWI_ID) ); --==>> Table TBL_JIKWI이(가) 생성되었습니다. --○ 시퀀스 생성 CREATE SEQUENCE JIKWISEQ NOCACHE; --==>> Sequence JIKWISEQ이(가) 생성되었습니다. --○ 데이터 입력 -- 사장 전무 상무 이사 부장 차장 과장 대리 사원 INSERT INTO TBL_JIKWI(JIKWI_ID, JIKWI_NAME, MIN_BASICPAY) VALUES(JIKWISEQ.NEXTVAL, '사장', 4250000); INSERT INTO TBL_JIKWI(JIKWI_ID, JIKWI_NAME, MIN_BASICPAY) VALUES(JIKWISEQ.NEXTVAL, '전무', 3800000); INSERT INTO TBL_JIKWI(JIKWI_ID, JIKWI_NAME, MIN_BASICPAY) VALUES(JIKWISEQ.NEXTVAL, '상무', 3500000); INSERT INTO TBL_JIKWI(JIKWI_ID, JIKWI_NAME, MIN_BASICPAY) VALUES(JIKWISEQ.NEXTVAL, '이사', 3100000); INSERT INTO TBL_JIKWI(JIKWI_ID, JIKWI_NAME, MIN_BASICPAY) VALUES(JIKWISEQ.NEXTVAL, '부장', 2450000); INSERT INTO TBL_JIKWI(JIKWI_ID, JIKWI_NAME, MIN_BASICPAY) VALUES(JIKWISEQ.NEXTVAL, '차장', 2350000); INSERT INTO TBL_JIKWI(JIKWI_ID, JIKWI_NAME, MIN_BASICPAY) VALUES(JIKWISEQ.NEXTVAL, '과장', 2260000); INSERT INTO TBL_JIKWI(JIKWI_ID, JIKWI_NAME, MIN_BASICPAY) VALUES(JIKWISEQ.NEXTVAL, '대리', 1800000); INSERT INTO TBL_JIKWI(JIKWI_ID, JIKWI_NAME, MIN_BASICPAY) VALUES(JIKWISEQ.NEXTVAL, '사원', 1650000); --==>> 1 행 이(가) 삽입되었습니다. * 9 --○ 확인 SELECT * FROM TBL_JIKWI; --==>> /* 1 사장 4250000 2 전무 3800000 3 상무 3500000 4 이사 3100000 5 부장 2450000 6 차장 2350000 7 과장 2260000 8 대리 1800000 9 사원 1650000 */ --○ 커밋 COMMIT; --==>> 커밋 완료. --------------------------------------------------------------------------------------------------- DESC TBL_EMP; --○ 기존 테이블 제거 DROP TABLE TBL_EMP; --==>> Table TBL_EMP이(가) 삭제되었습니다. --○ 실습 테이블 생성 CREATE TABLE TBL_EMP ( EMP_ID NUMBER(5) , EMP_NAME VARCHAR2(30) , SSN CHAR(14) , IBSADATE DATE , CITY_ID NUMBER(5) , TEL VARCHAR2(20) , BUSEO_ID NUMBER(5) , JIKWI_ID NUMBER(5) , BASICPAY NUMBER(10) , SUDANG NUMBER(10) ); --==>> Table TBL_EMP이(가) 생성되었습니다. --○ 제약조건 설정 ALTER TABLE TBL_EMP ADD ( CONSTRAINT EMP_EMP_ID_PK PRIMARY KEY(EMP_ID) , CONSTRAINT EMP_CITY_ID_FK FOREIGN KEY(CITY_ID) REFERENCES TBL_CITY(CITY_ID) , CONSTRAINT EMP_BUSEO_ID_FK FOREIGN KEY(BUSEO_ID) REFERENCES TBL_BUSEO(BUSEO_ID) , CONSTRAINT EMP_JIKWI_ID_FK FOREIGN KEY(JIKWI_ID) REFERENCES TBL_JIKWI(JIKWI_ID) ); --==>> Table TBL_EMP이(가) 변경되었습니다. --○ 시퀀스 생성 CREATE SEQUENCE EMPSEQ START WITH 1001 NOCACHE; --==>> Sequence EMPSEQ이(가) 생성되었습니다. --○ 데이터 입력 INSERT INTO TBL_EMP (EMP_ID, EMP_NAME, SSN, IBSADATE, CITY_ID, TEL, BUSEO_ID, JIKWI_ID, BASICPAY, SUDANG) VALUES (EMPSEQ.NEXTVAL, '홍길동', '771212-1022432', '1998-10-11', 6, '011-2356-4528', 2, 5, 2610000, 200000); INSERT INTO TBL_EMP (EMP_ID, EMP_NAME, SSN, IBSADATE, CITY_ID, TEL, BUSEO_ID, JIKWI_ID, BASICPAY, SUDANG) VALUES (EMPSEQ.NEXTVAL, '이순신', '801007-1544236', '2000-11-29', 2, '010-4758-6532', 6, 9, 1320000, 200000); INSERT INTO TBL_EMP (EMP_ID, EMP_NAME, SSN, IBSADATE, CITY_ID, TEL, BUSEO_ID, JIKWI_ID, BASICPAY, SUDANG) VALUES (EMPSEQ.NEXTVAL, '이순애', '770922-2312547', '1999-02-25', 7, '010-4231-1236', 1, 5, 2550000, 160000); INSERT INTO TBL_EMP (EMP_ID, EMP_NAME, SSN, IBSADATE, CITY_ID, TEL, BUSEO_ID, JIKWI_ID, BASICPAY, SUDANG) VALUES (EMPSEQ.NEXTVAL, '김정훈', '790304-1788896', '2000-10-01', 9, '019-5236-4221', 3, 8, 1954200, 170000); INSERT INTO TBL_EMP (EMP_ID, EMP_NAME, SSN, IBSADATE, CITY_ID, TEL, BUSEO_ID, JIKWI_ID, BASICPAY, SUDANG) VALUES (EMPSEQ.NEXTVAL, '한석봉', '811112-1566789', '2004-08-13', 6, '018-5211-3542', 6, 9, 1420000, 160000); INSERT INTO TBL_EMP (EMP_ID, EMP_NAME, SSN, IBSADATE, CITY_ID, TEL, BUSEO_ID, JIKWI_ID, BASICPAY, SUDANG) VALUES (EMPSEQ.NEXTVAL, '이기자', '780505-2978541', '2002-02-11', 7, '010-3214-5357', 1, 7, 2265000, 150000); INSERT INTO TBL_EMP (EMP_ID, EMP_NAME, SSN, IBSADATE, CITY_ID, TEL, BUSEO_ID, JIKWI_ID, BASICPAY, SUDANG) VALUES (EMPSEQ.NEXTVAL, '장인철', '780506-1625148', '1998-03-16', 10, '011-2345-2525', 1, 8, 1250000, 150000); INSERT INTO TBL_EMP (EMP_ID, EMP_NAME, SSN, IBSADATE, CITY_ID, TEL, BUSEO_ID, JIKWI_ID, BASICPAY, SUDANG) VALUES (EMPSEQ.NEXTVAL, '김영년', '821011-2362514', '2002-04-30', 6, '016-2222-4444', 7, 9, 950000 , 145000); INSERT INTO TBL_EMP (EMP_ID, EMP_NAME, SSN, IBSADATE, CITY_ID, TEL, BUSEO_ID, JIKWI_ID, BASICPAY, SUDANG) VALUES (EMPSEQ.NEXTVAL, '나윤균', '810810-1552147', '2003-10-10', 2, '019-1111-2222', 4, 9, 840000 , 220400); INSERT INTO TBL_EMP (EMP_ID, EMP_NAME, SSN, IBSADATE, CITY_ID, TEL, BUSEO_ID, JIKWI_ID, BASICPAY, SUDANG) VALUES (EMPSEQ.NEXTVAL, '김종서', '751010-1122233', '1997-08-08', 5, '011-3214-5555', 3, 5, 2540000, 130000); INSERT INTO TBL_EMP (EMP_ID, EMP_NAME, SSN, IBSADATE, CITY_ID, TEL, BUSEO_ID, JIKWI_ID, BASICPAY, SUDANG) VALUES (EMPSEQ.NEXTVAL, '유관순', '801010-2987897', '2000-07-07', 6, '010-8888-4422', 3, 9, 1020000, 140000); INSERT INTO TBL_EMP (EMP_ID, EMP_NAME, SSN, IBSADATE, CITY_ID, TEL, BUSEO_ID, JIKWI_ID, BASICPAY, SUDANG) VALUES (EMPSEQ.NEXTVAL, '정한국', '760909-1333333', '1999-10-16', 1, '018-2222-4242', 7, 9, 880000 , 114000); INSERT INTO TBL_EMP (EMP_ID, EMP_NAME, SSN, IBSADATE, CITY_ID, TEL, BUSEO_ID, JIKWI_ID, BASICPAY, SUDANG) VALUES (EMPSEQ.NEXTVAL, '조미숙', '790102-2777777', '1998-06-07', 2, '019-6666-4444', 7, 8, 1601000, 103000); INSERT INTO TBL_EMP (EMP_ID, EMP_NAME, SSN, IBSADATE, CITY_ID, TEL, BUSEO_ID, JIKWI_ID, BASICPAY, SUDANG) VALUES (EMPSEQ.NEXTVAL, '황진이', '810707-2574812', '2002-02-15', 7, '010-3214-5467', 1, 9, 1100000, 130000); INSERT INTO TBL_EMP (EMP_ID, EMP_NAME, SSN, IBSADATE, CITY_ID, TEL, BUSEO_ID, JIKWI_ID, BASICPAY, SUDANG) VALUES (EMPSEQ.NEXTVAL, '이현숙', '800606-2954687', '1999-07-26', 2, '016-2548-3365', 6, 9, 1050000, 104000); INSERT INTO TBL_EMP (EMP_ID, EMP_NAME, SSN, IBSADATE, CITY_ID, TEL, BUSEO_ID, JIKWI_ID, BASICPAY, SUDANG) VALUES (EMPSEQ.NEXTVAL, '이상헌', '781010-1666678', '2001-11-29', 2, '010-4526-1234', 1, 7, 2350000, 150000); INSERT INTO TBL_EMP (EMP_ID, EMP_NAME, SSN, IBSADATE, CITY_ID, TEL, BUSEO_ID, JIKWI_ID, BASICPAY, SUDANG) VALUES (EMPSEQ.NEXTVAL, '엄용수', '820507-1452365', '2000-08-28', 7, '010-3254-2542', 1, 9, 950000 , 210000); INSERT INTO TBL_EMP (EMP_ID, EMP_NAME, SSN, IBSADATE, CITY_ID, TEL, BUSEO_ID, JIKWI_ID, BASICPAY, SUDANG) VALUES (EMPSEQ.NEXTVAL, '이성길', '801028-1849534', '2004-08-08', 9, '018-1333-3333', 1, 9, 880000 , 123000); INSERT INTO TBL_EMP (EMP_ID, EMP_NAME, SSN, IBSADATE, CITY_ID, TEL, BUSEO_ID, JIKWI_ID, BASICPAY, SUDANG) VALUES (EMPSEQ.NEXTVAL, '박문수', '780710-1985632', '1999-12-10', 6, '017-4747-4848', 4, 7, 2300000, 165000); INSERT INTO TBL_EMP (EMP_ID, EMP_NAME, SSN, IBSADATE, CITY_ID, TEL, BUSEO_ID, JIKWI_ID, BASICPAY, SUDANG) VALUES (EMPSEQ.NEXTVAL, '유영희', '800304-2741258', '2003-10-10', 8, '011-9595-8585', 5, 9, 880000 , 140000); INSERT INTO TBL_EMP (EMP_ID, EMP_NAME, SSN, IBSADATE, CITY_ID, TEL, BUSEO_ID, JIKWI_ID, BASICPAY, SUDANG) VALUES (EMPSEQ.NEXTVAL, '홍길남', '801010-1111111', '2001-09-07', 2, '011-9999-7575', 1, 9, 875000 , 120000); INSERT INTO TBL_EMP (EMP_ID, EMP_NAME, SSN, IBSADATE, CITY_ID, TEL, BUSEO_ID, JIKWI_ID, BASICPAY, SUDANG) VALUES (EMPSEQ.NEXTVAL, '이영숙', '800501-2312456', '2003-02-25', 8, '017-5214-5282', 2, 8, 1960000, 180000); INSERT INTO TBL_EMP (EMP_ID, EMP_NAME, SSN, IBSADATE, CITY_ID, TEL, BUSEO_ID, JIKWI_ID, BASICPAY, SUDANG) VALUES (EMPSEQ.NEXTVAL, '김인수', '731211-1214576', '1995-02-23', 6, NULL , 3, 5, 2500000, 170000); INSERT INTO TBL_EMP (EMP_ID, EMP_NAME, SSN, IBSADATE, CITY_ID, TEL, BUSEO_ID, JIKWI_ID, BASICPAY, SUDANG) VALUES (EMPSEQ.NEXTVAL, '김말자', '830225-2633334', '1999-08-28', 6, '011-5248-7789', 2, 8, 1900000, 170000); INSERT INTO TBL_EMP (EMP_ID, EMP_NAME, SSN, IBSADATE, CITY_ID, TEL, BUSEO_ID, JIKWI_ID, BASICPAY, SUDANG) VALUES (EMPSEQ.NEXTVAL, '우재옥', '801103-1654442', '2000-10-01', 6, '010-4563-2587', 3, 9, 1100000, 160000); INSERT INTO TBL_EMP (EMP_ID, EMP_NAME, SSN, IBSADATE, CITY_ID, TEL, BUSEO_ID, JIKWI_ID, BASICPAY, SUDANG) VALUES (EMPSEQ.NEXTVAL, '김숙남', '810907-2015457', '2002-08-28', 2, '010-2112-5225', 3, 9, 1050000, 150000); INSERT INTO TBL_EMP (EMP_ID, EMP_NAME, SSN, IBSADATE, CITY_ID, TEL, BUSEO_ID, JIKWI_ID, BASICPAY, SUDANG) VALUES (EMPSEQ.NEXTVAL, '김영길', '801216-1898752', '2000-10-18', 6, '019-8523-1478', 6, 7, 2340000, 170000); INSERT INTO TBL_EMP (EMP_ID, EMP_NAME, SSN, IBSADATE, CITY_ID, TEL, BUSEO_ID, JIKWI_ID, BASICPAY, SUDANG) VALUES (EMPSEQ.NEXTVAL, '이남신', '810101-1010101', '2001-09-07', 10, '016-1818-4848', 4, 9, 892000 , 110000); INSERT INTO TBL_EMP (EMP_ID, EMP_NAME, SSN, IBSADATE, CITY_ID, TEL, BUSEO_ID, JIKWI_ID, BASICPAY, SUDANG) VALUES (EMPSEQ.NEXTVAL, '김말숙', '800301-2020202', '2000-09-08', 6, '016-3535-3636', 6, 9, 920000 , 124000); INSERT INTO TBL_EMP (EMP_ID, EMP_NAME, SSN, IBSADATE, CITY_ID, TEL, BUSEO_ID, JIKWI_ID, BASICPAY, SUDANG) VALUES (EMPSEQ.NEXTVAL, '정정해', '790210-2101010', '1999-10-17', 5, '019-6564-6752', 6, 7, 2304000, 124000); INSERT INTO TBL_EMP (EMP_ID, EMP_NAME, SSN, IBSADATE, CITY_ID, TEL, BUSEO_ID, JIKWI_ID, BASICPAY, SUDANG) VALUES (EMPSEQ.NEXTVAL, '지재환', '771115-1687988', '2001-01-21', 6, '019-5552-7511', 2, 5, 2450000, 160000); INSERT INTO TBL_EMP (EMP_ID, EMP_NAME, SSN, IBSADATE, CITY_ID, TEL, BUSEO_ID, JIKWI_ID, BASICPAY, SUDANG) VALUES (EMPSEQ.NEXTVAL, '심심해', '810206-2222222', '2000-05-05', 9, '016-8888-7474', 5, 9, 880000 , 108000); INSERT INTO TBL_EMP (EMP_ID, EMP_NAME, SSN, IBSADATE, CITY_ID, TEL, BUSEO_ID, JIKWI_ID, BASICPAY, SUDANG) VALUES (EMPSEQ.NEXTVAL, '김미나', '780505-2999999', '1998-06-07', 6, '011-2444-4444', 3, 9, 1020000, 104000); INSERT INTO TBL_EMP (EMP_ID, EMP_NAME, SSN, IBSADATE, CITY_ID, TEL, BUSEO_ID, JIKWI_ID, BASICPAY, SUDANG) VALUES (EMPSEQ.NEXTVAL, '이정석', '820505-1325468', '2005-09-26', 2, '011-3697-7412', 2, 9, 1100000, 160000); INSERT INTO TBL_EMP (EMP_ID, EMP_NAME, SSN, IBSADATE, CITY_ID, TEL, BUSEO_ID, JIKWI_ID, BASICPAY, SUDANG) VALUES (EMPSEQ.NEXTVAL, '정영희', '831010-2153252', '2002-05-16', 7, NULL , 1, 9, 1050000, 140000); INSERT INTO TBL_EMP (EMP_ID, EMP_NAME, SSN, IBSADATE, CITY_ID, TEL, BUSEO_ID, JIKWI_ID, BASICPAY, SUDANG) VALUES (EMPSEQ.NEXTVAL, '이재영', '701126-2852147', '2003-08-10', 6, '011-9999-9999', 5, 9, 960400 , 190000); INSERT INTO TBL_EMP (EMP_ID, EMP_NAME, SSN, IBSADATE, CITY_ID, TEL, BUSEO_ID, JIKWI_ID, BASICPAY, SUDANG) VALUES (EMPSEQ.NEXTVAL, '최석규', '770129-1456987', '1998-10-15', 7, '011-7777-7777', 7, 7, 2350000, 187000); INSERT INTO TBL_EMP (EMP_ID, EMP_NAME, SSN, IBSADATE, CITY_ID, TEL, BUSEO_ID, JIKWI_ID, BASICPAY, SUDANG) VALUES (EMPSEQ.NEXTVAL, '손인수', '791009-2321456', '1999-11-15', 5, '010-6542-7412', 3, 8, 2000000, 150000); INSERT INTO TBL_EMP (EMP_ID, EMP_NAME, SSN, IBSADATE, CITY_ID, TEL, BUSEO_ID, JIKWI_ID, BASICPAY, SUDANG) VALUES (EMPSEQ.NEXTVAL, '고순정', '800504-2000032', '2003-12-28', 2, '010-2587-7895', 3, 8, 2010000, 160000); INSERT INTO TBL_EMP (EMP_ID, EMP_NAME, SSN, IBSADATE, CITY_ID, TEL, BUSEO_ID, JIKWI_ID, BASICPAY, SUDANG) VALUES (EMPSEQ.NEXTVAL, '박세열', '790509-1635214', '2000-09-10', 4, '016-4444-7777', 4, 8, 2100000, 130000); INSERT INTO TBL_EMP (EMP_ID, EMP_NAME, SSN, IBSADATE, CITY_ID, TEL, BUSEO_ID, JIKWI_ID, BASICPAY, SUDANG) VALUES (EMPSEQ.NEXTVAL, '문길수', '721217-1951357', '2001-12-10', 11, '016-4444-5555', 5, 7, 2300000, 150000); INSERT INTO TBL_EMP (EMP_ID, EMP_NAME, SSN, IBSADATE, CITY_ID, TEL, BUSEO_ID, JIKWI_ID, BASICPAY, SUDANG) VALUES (EMPSEQ.NEXTVAL, '채정희', '810709-2000054', '2003-10-17', 2, '011-5125-5511', 1, 9, 1020000, 200000); INSERT INTO TBL_EMP (EMP_ID, EMP_NAME, SSN, IBSADATE, CITY_ID, TEL, BUSEO_ID, JIKWI_ID, BASICPAY, SUDANG) VALUES (EMPSEQ.NEXTVAL, '양미옥', '830504-2471523', '2003-09-24', 6, '016-8548-6547', 3, 9, 1100000, 210000); INSERT INTO TBL_EMP (EMP_ID, EMP_NAME, SSN, IBSADATE, CITY_ID, TEL, BUSEO_ID, JIKWI_ID, BASICPAY, SUDANG) VALUES (EMPSEQ.NEXTVAL, '지수환', '820305-1475286', '2004-01-21', 6, '011-5555-7548', 3, 9, 1060000, 220000); INSERT INTO TBL_EMP (EMP_ID, EMP_NAME, SSN, IBSADATE, CITY_ID, TEL, BUSEO_ID, JIKWI_ID, BASICPAY, SUDANG) VALUES (EMPSEQ.NEXTVAL, '홍원신', '690906-1985214', '2003-03-16', 9, '011-7777-7777', 3, 9, 960000 , 152000); INSERT INTO TBL_EMP (EMP_ID, EMP_NAME, SSN, IBSADATE, CITY_ID, TEL, BUSEO_ID, JIKWI_ID, BASICPAY, SUDANG) VALUES (EMPSEQ.NEXTVAL, '허경운', '760105-1458752', '1999-05-04', 3, '017-3333-3333', 6, 5, 2650000, 150000); INSERT INTO TBL_EMP (EMP_ID, EMP_NAME, SSN, IBSADATE, CITY_ID, TEL, BUSEO_ID, JIKWI_ID, BASICPAY, SUDANG) VALUES (EMPSEQ.NEXTVAL, '산마루', '780505-1234567', '2001-07-15', 6, '018-0505-0505', 3, 8, 2100000, 112000); INSERT INTO TBL_EMP (EMP_ID, EMP_NAME, SSN, IBSADATE, CITY_ID, TEL, BUSEO_ID, JIKWI_ID, BASICPAY, SUDANG) VALUES (EMPSEQ.NEXTVAL, '이기상', '790604-1415141', '2001-06-07', 8, NULL , 1, 8, 2050000, 106000); INSERT INTO TBL_EMP (EMP_ID, EMP_NAME, SSN, IBSADATE, CITY_ID, TEL, BUSEO_ID, JIKWI_ID, BASICPAY, SUDANG) VALUES (EMPSEQ.NEXTVAL, '이미성', '830908-2456548', '2000-04-07', 7, '010-6654-8854', 1, 9, 1300000, 130000); INSERT INTO TBL_EMP (EMP_ID, EMP_NAME, SSN, IBSADATE, CITY_ID, TEL, BUSEO_ID, JIKWI_ID, BASICPAY, SUDANG) VALUES (EMPSEQ.NEXTVAL, '이미인', '810403-2828287', '2003-06-07', 2, '011-8585-5252', 7, 8, 1950000, 103000); INSERT INTO TBL_EMP (EMP_ID, EMP_NAME, SSN, IBSADATE, CITY_ID, TEL, BUSEO_ID, JIKWI_ID, BASICPAY, SUDANG) VALUES (EMPSEQ.NEXTVAL, '권영미', '790303-2155554', '2000-06-04', 6, '011-5555-7548', 3, 7, 2260000, 104000); INSERT INTO TBL_EMP (EMP_ID, EMP_NAME, SSN, IBSADATE, CITY_ID, TEL, BUSEO_ID, JIKWI_ID, BASICPAY, SUDANG) VALUES (EMPSEQ.NEXTVAL, '권옥경', '820406-2000456', '2000-10-10', 2, '010-3644-5577', 2, 9, 1020000, 105000); INSERT INTO TBL_EMP (EMP_ID, EMP_NAME, SSN, IBSADATE, CITY_ID, TEL, BUSEO_ID, JIKWI_ID, BASICPAY, SUDANG) VALUES (EMPSEQ.NEXTVAL, '김싱식', '800715-1313131', '1999-12-12', 9, '011-7585-7474', 5, 9, 960000 , 108000); INSERT INTO TBL_EMP (EMP_ID, EMP_NAME, SSN, IBSADATE, CITY_ID, TEL, BUSEO_ID, JIKWI_ID, BASICPAY, SUDANG) VALUES (EMPSEQ.NEXTVAL, '정상호', '810705-1212141', '1999-10-16', 1, '016-1919-4242', 7, 9, 980000 , 114000); INSERT INTO TBL_EMP (EMP_ID, EMP_NAME, SSN, IBSADATE, CITY_ID, TEL, BUSEO_ID, JIKWI_ID, BASICPAY, SUDANG) VALUES (EMPSEQ.NEXTVAL, '정한나', '820506-2425153', '2004-06-07', 6, '016-2424-4242', 3, 9, 1000000, 104000); INSERT INTO TBL_EMP (EMP_ID, EMP_NAME, SSN, IBSADATE, CITY_ID, TEL, BUSEO_ID, JIKWI_ID, BASICPAY, SUDANG) VALUES (EMPSEQ.NEXTVAL, '전용재', '800605-1456987', '2004-08-13', 7, '010-7549-8654', 3, 8, 1950000, 200000); INSERT INTO TBL_EMP (EMP_ID, EMP_NAME, SSN, IBSADATE, CITY_ID, TEL, BUSEO_ID, JIKWI_ID, BASICPAY, SUDANG) VALUES (EMPSEQ.NEXTVAL, '이미경', '780406-2003214', '1998-02-11', 2, '016-6542-7546', 5, 5, 2520000, 160000); INSERT INTO TBL_EMP (EMP_ID, EMP_NAME, SSN, IBSADATE, CITY_ID, TEL, BUSEO_ID, JIKWI_ID, BASICPAY, SUDANG) VALUES (EMPSEQ.NEXTVAL, '김신제', '800709-1321456', '2003-08-08', 7, '010-2415-5444', 2, 8, 1950000, 180000); INSERT INTO TBL_EMP (EMP_ID, EMP_NAME, SSN, IBSADATE, CITY_ID, TEL, BUSEO_ID, JIKWI_ID, BASICPAY, SUDANG) VALUES (EMPSEQ.NEXTVAL, '임수봉', '810809-2121244', '2001-10-10', 6, '011-4151-4154', 1, 9, 890000 , 102000); INSERT INTO TBL_EMP (EMP_ID, EMP_NAME, SSN, IBSADATE, CITY_ID, TEL, BUSEO_ID, JIKWI_ID, BASICPAY, SUDANG) VALUES (EMPSEQ.NEXTVAL, '김신애', '810809-2111111', '2001-10-10', 6, '011-4151-4444', 1, 9, 900000 , 102000); --==>> 1 행 이(가) 삽입되었습니다. * 60 --○ 확인 SELECT COUNT(*) AS COUNT FROM TBL_EMP; --==>> 60 SELECT * FROM TBL_EMP; --==>> /* 1001 홍길동 771212-1022432 1998-10-11 6 011-2356-4528 2 5 2610000 200000 1002 이순신 801007-1544236 2000-11-29 2 010-4758-6532 6 9 1320000 200000 1003 이순애 770922-2312547 1999-02-25 7 010-4231-1236 1 5 2550000 160000 1004 김정훈 790304-1788896 2000-10-01 9 019-5236-4221 3 8 1954200 170000 1005 한석봉 811112-1566789 2004-08-13 6 018-5211-3542 6 9 1420000 160000 1006 이기자 780505-2978541 2002-02-11 7 010-3214-5357 1 7 2265000 150000 1007 장인철 780506-1625148 1998-03-16 10 011-2345-2525 1 8 1250000 150000 1008 김영년 821011-2362514 2002-04-30 6 016-2222-4444 7 9 950000 145000 1009 나윤균 810810-1552147 2003-10-10 2 019-1111-2222 4 9 840000 220400 1010 김종서 751010-1122233 1997-08-08 5 011-3214-5555 3 5 2540000 130000 1011 유관순 801010-2987897 2000-07-07 6 010-8888-4422 3 9 1020000 140000 1012 정한국 760909-1333333 1999-10-16 1 018-2222-4242 7 9 880000 114000 1013 조미숙 790102-2777777 1998-06-07 2 019-6666-4444 7 8 1601000 103000 1014 황진이 810707-2574812 2002-02-15 7 010-3214-5467 1 9 1100000 130000 1015 이현숙 800606-2954687 1999-07-26 2 016-2548-3365 6 9 1050000 104000 1016 이상헌 781010-1666678 2001-11-29 2 010-4526-1234 1 7 2350000 150000 1017 엄용수 820507-1452365 2000-08-28 7 010-3254-2542 1 9 950000 210000 1018 이성길 801028-1849534 2004-08-08 9 018-1333-3333 1 9 880000 123000 1019 박문수 780710-1985632 1999-12-10 6 017-4747-4848 4 7 2300000 165000 1020 유영희 800304-2741258 2003-10-10 8 011-9595-8585 5 9 880000 140000 1021 홍길남 801010-1111111 2001-09-07 2 011-9999-7575 1 9 875000 120000 1022 이영숙 800501-2312456 2003-02-25 8 017-5214-5282 2 8 1960000 180000 1023 김인수 731211-1214576 1995-02-23 6 3 5 2500000 170000 1024 김말자 830225-2633334 1999-08-28 6 011-5248-7789 2 8 1900000 170000 1025 우재옥 801103-1654442 2000-10-01 6 010-4563-2587 3 9 1100000 160000 1026 김숙남 810907-2015457 2002-08-28 2 010-2112-5225 3 9 1050000 150000 1027 김영길 801216-1898752 2000-10-18 6 019-8523-1478 6 7 2340000 170000 1028 이남신 810101-1010101 2001-09-07 10 016-1818-4848 4 9 892000 110000 1029 김말숙 800301-2020202 2000-09-08 6 016-3535-3636 6 9 920000 124000 1030 정정해 790210-2101010 1999-10-17 5 019-6564-6752 6 7 2304000 124000 1031 지재환 771115-1687988 2001-01-21 6 019-5552-7511 2 5 2450000 160000 1032 심심해 810206-2222222 2000-05-05 9 016-8888-7474 5 9 880000 108000 1033 김미나 780505-2999999 1998-06-07 6 011-2444-4444 3 9 1020000 104000 1034 이정석 820505-1325468 2005-09-26 2 011-3697-7412 2 9 1100000 160000 1035 정영희 831010-2153252 2002-05-16 7 1 9 1050000 140000 1036 이재영 701126-2852147 2003-08-10 6 011-9999-9999 5 9 960400 190000 1037 최석규 770129-1456987 1998-10-15 7 011-7777-7777 7 7 2350000 187000 1038 손인수 791009-2321456 1999-11-15 5 010-6542-7412 3 8 2000000 150000 1039 고순정 800504-2000032 2003-12-28 2 010-2587-7895 3 8 2010000 160000 1040 박세열 790509-1635214 2000-09-10 4 016-4444-7777 4 8 2100000 130000 1041 문길수 721217-1951357 2001-12-10 11 016-4444-5555 5 7 2300000 150000 1042 채정희 810709-2000054 2003-10-17 2 011-5125-5511 1 9 1020000 200000 1043 양미옥 830504-2471523 2003-09-24 6 016-8548-6547 3 9 1100000 210000 1044 지수환 820305-1475286 2004-01-21 6 011-5555-7548 3 9 1060000 220000 1045 홍원신 690906-1985214 2003-03-16 9 011-7777-7777 3 9 960000 152000 1046 허경운 760105-1458752 1999-05-04 3 017-3333-3333 6 5 2650000 150000 1047 산마루 780505-1234567 2001-07-15 6 018-0505-0505 3 8 2100000 112000 1048 이기상 790604-1415141 2001-06-07 8 1 8 2050000 106000 1049 이미성 830908-2456548 2000-04-07 7 010-6654-8854 1 9 1300000 130000 1050 이미인 810403-2828287 2003-06-07 2 011-8585-5252 7 8 1950000 103000 1051 권영미 790303-2155554 2000-06-04 6 011-5555-7548 3 7 2260000 104000 1052 권옥경 820406-2000456 2000-10-10 2 010-3644-5577 2 9 1020000 105000 1053 김싱식 800715-1313131 1999-12-12 9 011-7585-7474 5 9 960000 108000 1054 정상호 810705-1212141 1999-10-16 1 016-1919-4242 7 9 980000 114000 1055 정한나 820506-2425153 2004-06-07 6 016-2424-4242 3 9 1000000 104000 1056 전용재 800605-1456987 2004-08-13 7 010-7549-8654 3 8 1950000 200000 1057 이미경 780406-2003214 1998-02-11 2 016-6542-7546 5 5 2520000 160000 1058 김신제 800709-1321456 2003-08-08 7 010-2415-5444 2 8 1950000 180000 1059 임수봉 810809-2121244 2001-10-10 6 011-4151-4154 1 9 890000 102000 1060 김신애 810809-2111111 2001-10-10 6 011-4151-4444 1 9 900000 102000 */ --○ 커밋 COMMIT; --==>> 커밋 완료.
/* ○ 직원 관리 프로그램을 구현한다. - 데이터베이스 연동 프로그램으로 작성한다. - MemberDTO, MemberDAO 를 활용한다. - 메뉴 구성 및 기능을 구현한다. → MemberProcess */
실행 예)
더보기/* 실행 예) ======[ 직원 관리 ]====== ========================= 1. 직원 정보 입력 2. 직원 전체 출력 - 사번 정렬 - 이름 정렬 - 직위 정렬 - 급여 내림차순 정렬 3. 직원 검색 출력 - 사번 검색 - 이름 검색 - 부서 검색 - 직위 검색 4. 직원 정보 수정 5. 직원 정보 삭제 ========================= >> 메뉴 선택(1~5, -1 종료) : 1 직원 정보 입력 ------------------------------------------------------------------ 이름 : 김재혁 주민등록번호(yymmdd-nnnnnnn) : 980202-1234567 입사일(yyyy-mm-dd) : 2019-06-08 지역(강원/경기/경남/경북/부산/서울/인천/전남/전북/제주/충남/충북/) : 경기 -- 지역도 city 테이블에 있는 것 만 출력 전화번호 : 010-1212-3434 부서(개발부/기획부/영업부/인사부/자재부/총무부/홍보부/) : 개발부 -- 부서도 buseo 테이블에 있는 것 만 출력 직위(사장/전무/상무/이사/부장/차장/과장/대리/사원/) : 대리 기본급(최소 1800000 이상) : 4000000 -- 직위에 따른 최소 급여로 출력 수당 : 1000000 직원 정보 입력 완료~!!! ------------------------------------------------------------------ 직원 정보 입력 ======[ 직원 관리 ]====== ========================= 1. 직원 정보 입력 2. 직원 전체 출력 - 사번 정렬 - 이름 정렬 - 부서 정렬 - 직위 정렬 - 급여 내림차순 정렬 3. 직원 검색 출력 - 사번 검색 - 이름 검색 - 부서 검색 - 직위 검색 4. 직원 정보 수정 5. 직원 정보 삭제 ========================= >> 메뉴 선택(1~5, -1 종료) : 2 1. 사번 정렬 2. 이름 정렬 3. 부서 정렬 4. 직위 정렬 5. 급여 내림차순 정렬 >> 선택(1~5, -1 종료) : -1 ======[ 직원 관리 ]====== ========================= 1. 직원 정보 입력 2. 직원 전체 출력 - 사번 정렬 - 이름 정렬 - 부서 정렬 - 직위 정렬 - 급여 내림차순 정렬 3. 직원 검색 출력 - 사번 검색 - 이름 검색 - 부서 검색 - 직위 검색 4. 직원 정보 수정 5. 직원 정보 삭제 ========================= >> 메뉴 선택(1~5, -1 종료) : 2 1. 사번 정렬 2. 이름 정렬 3. 부서 정렬 4. 직위 정렬 5. 급여 내림차순 정렬 >> 선택(1~5, -1 종료) : 1 전체 인원 : xx 명 사번 이름 주민번호 입사일 지역 전화번호 부서 직위 기본급 수당 급여 -- id 가 아닌 실제 값이 출력되게 구성 1001 -- 급여 = 기본급 + 수당 1002 1003 : ... 1060 ======[ 직원 관리 ]====== ========================= 1. 직원 정보 입력 2. 직원 전체 출력 - 사번 정렬 - 이름 정렬 - 부서 정렬 - 직위 정렬 - 급여 내림차순 정렬 3. 직원 검색 출력 - 사번 검색 - 이름 검색 - 부서 검색 - 직위 검색 4. 직원 정보 수정 5. 직원 정보 삭제 ========================= >> 메뉴 선택(1~5, -1 종료) : */
- MemberDTO
/*===================== MemberDTO.java =======================*/ package com.test; public class MemberDTO { private String id, name, ssn, ibsadate, tel; // 사번, 이름, 주민번호, 입사일 ,전화번호 private String city_name, buseo_name, jikwi_name; // 도시명, 부서명, 직위명 private int city_id, buseo_id, jikwi_id; // 도시id, 부서id, 직위id private int basicpay, sudang, gubyo; // 기본급, 수당, 급여 public int getGubyo() { return gubyo; } public void setGubyo(int gubyo) { this.gubyo = gubyo; } public String getCity_name() { return city_name; } public void setCity_name(String city_name) { this.city_name = city_name; } public String getBuseo_name() { return buseo_name; } public void setBuseo_name(String buseo_name) { this.buseo_name = buseo_name; } public String getJikwi_name() { return jikwi_name; } public void setJikwi_name(String jikwi_name) { this.jikwi_name = jikwi_name; } public String getId() { return id; } public void setId(String id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getSsn() { return ssn; } public void setSsn(String ssn) { this.ssn = ssn; } public String getIbsadate() { return ibsadate; } public void setIbsadate(String ibsadate) { this.ibsadate = ibsadate; } public String getTel() { return tel; } public void setTel(String tel) { this.tel = tel; } public int getCity_id() { return city_id; } public void setCity_id(int city_id) { this.city_id = city_id; } public int getBuseo_id() { return buseo_id; } public void setBuseo_id(int buseo_id) { this.buseo_id = buseo_id; } public int getJikwi_id() { return jikwi_id; } public void setJikwi_id(int jikwi_id) { this.jikwi_id = jikwi_id; } public int getBasicpay() { return basicpay; } public void setBasicpay(int basicpay) { this.basicpay = basicpay; } public int getSudang() { return sudang; } public void setSudang(int sudang) { this.sudang = sudang; } }
- MemberDAO
/*===================== MemberDAO.java =======================*/ package com.test; import java.sql.Connection; import java.sql.ResultSet; import java.sql.Statement; import java.util.ArrayList; import com.util.DBConn; public class MemberDAO { // 주요 속성 구성 private Connection conn; // DB 접속 메소드 public Connection connection() { conn = DBConn.getConnection(); return conn; } // DB 접속해제 메소드 public void close() { DBConn.close(); } // 데이터 입력 메소드 public int add(MemberDTO dto) { int result = 0; try { // DB 연결 Statement stmt = conn.createStatement(); // 쿼리문 준비 String sql = String.format("INSERT INTO TBL_EMP(EMP_ID, EMP_NAME, SSN, IBSADATE, CITY_ID, TEL, BUSEO_ID, JIKWI_ID, BASICPAY, SUDANG)" + " VALUES(EMPSEQ.NEXTVAL, '%s', '%s', TO_DATE('%s'), %d, '%s', %d, %d, %d, %d)" , dto.getName(), dto.getSsn(), dto.getIbsadate(), dto.getCity_id(), dto.getTel() , dto.getBuseo_id(), dto.getJikwi_id(), dto.getBasicpay(), dto.getSudang()); // 연결객체에 담아 DB로 전송 result = stmt.executeUpdate(sql); // 객체 반납 stmt.close(); } catch (Exception e) { System.out.println(e.toString()); } // 결과 값 반환 return result; }// end add() // 전체 리스트 출력 메소드 // 1.사번 정렬 public ArrayList<MemberDTO> listsId() { ArrayList<MemberDTO> result = new ArrayList<MemberDTO>(); try { Statement stmt = conn.createStatement(); String sql = "SELECT E.EMP_ID, E.EMP_NAME, E.SSN, TO_CHAR(E.IBSADATE, 'YYYY-MM-DD') AS IBSADATE" + ", E.CITY_ID, C.CITY_NAME, E.TEL" + ", E.BUSEO_ID, B.BUSEO_NAME" + ", E.JIKWI_ID, J.JIKWI_NAME" + ", E.BASICPAY, E.SUDANG , (E.BASICPAY + E.SUDANG) AS GUBYO " + "FROM TBL_EMP E" + " JOIN TBL_CITY C ON E.CITY_ID = C.CITY_ID" + " JOIN TBL_BUSEO B ON E.BUSEO_ID = B.BUSEO_ID" + " JOIN TBL_JIKWI J ON E.JIKWI_ID = J.JIKWI_ID" + " ORDER BY E.EMP_ID" ; ResultSet rs = stmt.executeQuery(sql); while (rs.next()) { MemberDTO dto = new MemberDTO(); dto.setId(rs.getString("EMP_ID")); dto.setName(rs.getString("EMP_NAME")); dto.setSsn(rs.getString("SSN")); dto.setIbsadate(rs.getString("IBSADATE")); dto.setCity_name(rs.getString("CITY_NAME")); dto.setCity_id(rs.getInt("CITY_ID")); dto.setTel(rs.getString("TEL")); dto.setBuseo_name(rs.getString("BUSEO_NAME")); dto.setBuseo_id(rs.getInt("BUSEO_ID")); dto.setJikwi_name(rs.getString("JIKWI_NAME")); dto.setJikwi_id(rs.getInt("JIKWI_ID")); dto.setBasicpay(rs.getInt("BASICPAY")); dto.setSudang(rs.getInt("SUDANG")); dto.setGubyo(rs.getInt("GUBYO")); result.add(dto); } rs.close(); stmt.close(); } catch (Exception e) { System.out.println(e.toString()); } return result; }// end listsId() // 2.이름 정렬 public ArrayList<MemberDTO> listsName() { ArrayList<MemberDTO> result = new ArrayList<MemberDTO>(); try { Statement stmt = conn.createStatement(); String sql = "SELECT E.EMP_ID, E.EMP_NAME, E.SSN, TO_CHAR(E.IBSADATE, 'YYYY-MM-DD') AS IBSADATE" + ", E.CITY_ID, C.CITY_NAME, E.TEL" + ", E.BUSEO_ID, B.BUSEO_NAME" + ", E.JIKWI_ID, J.JIKWI_NAME" + ", E.BASICPAY, E.SUDANG , (E.BASICPAY + E.SUDANG) AS GUBYO" + " FROM TBL_EMP E" + " JOIN TBL_CITY C ON E.CITY_ID = C.CITY_ID" + " JOIN TBL_BUSEO B ON E.BUSEO_ID = B.BUSEO_ID" + " JOIN TBL_JIKWI J ON E.JIKWI_ID = J.JIKWI_ID" + " ORDER BY E.EMP_NAME"; ResultSet rs = stmt.executeQuery(sql); while (rs.next()) { MemberDTO dto = new MemberDTO(); dto.setId(rs.getString("EMP_ID")); dto.setName(rs.getString("EMP_NAME")); dto.setSsn(rs.getString("SSN")); dto.setIbsadate(rs.getString("IBSADATE")); dto.setCity_name(rs.getString("CITY_NAME")); dto.setCity_id(rs.getInt("CITY_ID")); dto.setTel(rs.getString("TEL")); dto.setBuseo_name(rs.getString("BUSEO_NAME")); dto.setBuseo_id(rs.getInt("BUSEO_ID")); dto.setJikwi_name(rs.getString("JIKWI_NAME")); dto.setJikwi_id(rs.getInt("JIKWI_ID")); dto.setBasicpay(rs.getInt("BASICPAY")); dto.setSudang(rs.getInt("SUDANG")); dto.setGubyo(rs.getInt("GUBYO")); result.add(dto); } rs.close(); stmt.close(); } catch (Exception e) { System.out.println(e.toString()); } return result; } // 3.부서 정렬 public ArrayList<MemberDTO> listsBuseo() { ArrayList<MemberDTO> result = new ArrayList<MemberDTO>(); try { Statement stmt = conn.createStatement(); String sql = "SELECT E.EMP_ID, E.EMP_NAME, E.SSN, TO_CHAR(E.IBSADATE, 'YYYY-MM-DD') AS IBSADATE" + ", E.CITY_ID, C.CITY_NAME, E.TEL" + ", E.BUSEO_ID, B.BUSEO_NAME" + ", E.JIKWI_ID, J.JIKWI_NAME" + ", E.BASICPAY, E.SUDANG , (E.BASICPAY + E.SUDANG) AS GUBYO" + " FROM TBL_EMP E" + " JOIN TBL_CITY C ON E.CITY_ID = C.CITY_ID" + " JOIN TBL_BUSEO B ON E.BUSEO_ID = B.BUSEO_ID" + " JOIN TBL_JIKWI J ON E.JIKWI_ID = J.JIKWI_ID" + " ORDER BY B.BUSEO_NAME"; ResultSet rs = stmt.executeQuery(sql); while (rs.next()) { MemberDTO dto = new MemberDTO(); dto.setId(rs.getString("EMP_ID")); dto.setName(rs.getString("EMP_NAME")); dto.setSsn(rs.getString("SSN")); dto.setIbsadate(rs.getString("IBSADATE")); dto.setCity_name(rs.getString("CITY_NAME")); dto.setCity_id(rs.getInt("CITY_ID")); dto.setTel(rs.getString("TEL")); dto.setBuseo_name(rs.getString("BUSEO_NAME")); dto.setBuseo_id(rs.getInt("BUSEO_ID")); dto.setJikwi_name(rs.getString("JIKWI_NAME")); dto.setJikwi_id(rs.getInt("JIKWI_ID")); dto.setBasicpay(rs.getInt("BASICPAY")); dto.setSudang(rs.getInt("SUDANG")); dto.setGubyo(rs.getInt("GUBYO")); result.add(dto); } rs.close(); stmt.close(); } catch (Exception e) { System.out.println(e.toString()); } return result; } // 4.직위 정렬 public ArrayList<MemberDTO> listsJikwi() { ArrayList<MemberDTO> result = new ArrayList<MemberDTO>(); try { Statement stmt = conn.createStatement(); String sql = "SELECT E.EMP_ID, E.EMP_NAME, E.SSN, TO_CHAR(E.IBSADATE, 'YYYY-MM-DD') AS IBSADATE" + ", E.CITY_ID, C.CITY_NAME, E.TEL" + ", E.BUSEO_ID, B.BUSEO_NAME" + ", E.JIKWI_ID, J.JIKWI_NAME" + ", E.BASICPAY, E.SUDANG , (E.BASICPAY + E.SUDANG) AS GUBYO" + " FROM TBL_EMP E" + " JOIN TBL_CITY C ON E.CITY_ID = C.CITY_ID" + " JOIN TBL_BUSEO B ON E.BUSEO_ID = B.BUSEO_ID" + " JOIN TBL_JIKWI J ON E.JIKWI_ID = J.JIKWI_ID" + " ORDER BY J.JIKWI_NAME"; ResultSet rs = stmt.executeQuery(sql); while (rs.next()) { MemberDTO dto = new MemberDTO(); dto.setId(rs.getString("EMP_ID")); dto.setName(rs.getString("EMP_NAME")); dto.setSsn(rs.getString("SSN")); dto.setIbsadate(rs.getString("IBSADATE")); dto.setCity_name(rs.getString("CITY_NAME")); dto.setCity_id(rs.getInt("CITY_ID")); dto.setTel(rs.getString("TEL")); dto.setBuseo_name(rs.getString("BUSEO_NAME")); dto.setBuseo_id(rs.getInt("BUSEO_ID")); dto.setJikwi_name(rs.getString("JIKWI_NAME")); dto.setJikwi_id(rs.getInt("JIKWI_ID")); dto.setBasicpay(rs.getInt("BASICPAY")); dto.setSudang(rs.getInt("SUDANG")); dto.setGubyo(rs.getInt("GUBYO")); result.add(dto); } rs.close(); stmt.close(); } catch (Exception e) { System.out.println(e.toString()); } return result; } // 5.급여 내림차순 정렬 public ArrayList<MemberDTO> listsGubyo() { ArrayList<MemberDTO> result = new ArrayList<MemberDTO>(); try { Statement stmt = conn.createStatement(); String sql = "SELECT E.EMP_ID, E.EMP_NAME, E.SSN, TO_CHAR(E.IBSADATE, 'YYYY-MM-DD') AS IBSADATE" + ", E.CITY_ID, C.CITY_NAME, E.TEL" + ", E.BUSEO_ID, B.BUSEO_NAME" + ", E.JIKWI_ID, J.JIKWI_NAME" + ", E.BASICPAY, E.SUDANG , (E.BASICPAY + E.SUDANG) AS GUBYO" + " FROM TBL_EMP E" + " JOIN TBL_CITY C ON E.CITY_ID = C.CITY_ID" + " JOIN TBL_BUSEO B ON E.BUSEO_ID = B.BUSEO_ID" + " JOIN TBL_JIKWI J ON E.JIKWI_ID = J.JIKWI_ID" + " ORDER BY GUBYO DESC"; ResultSet rs = stmt.executeQuery(sql); while (rs.next()) { MemberDTO dto = new MemberDTO(); dto.setId(rs.getString("EMP_ID")); dto.setName(rs.getString("EMP_NAME")); dto.setSsn(rs.getString("SSN")); dto.setIbsadate(rs.getString("IBSADATE")); dto.setCity_name(rs.getString("CITY_NAME")); dto.setCity_id(rs.getInt("CITY_ID")); dto.setTel(rs.getString("TEL")); dto.setBuseo_name(rs.getString("BUSEO_NAME")); dto.setBuseo_id(rs.getInt("BUSEO_ID")); dto.setJikwi_name(rs.getString("JIKWI_NAME")); dto.setJikwi_id(rs.getInt("JIKWI_ID")); dto.setBasicpay(rs.getInt("BASICPAY")); dto.setSudang(rs.getInt("SUDANG")); dto.setGubyo(rs.getInt("GUBYO")); result.add(dto); } rs.close(); stmt.close(); } catch (Exception e) { System.out.println(e.toString()); } return result; } //검색 출력 메소드 //1. 사번검색 public ArrayList<MemberDTO> searchId(String id) { ArrayList<MemberDTO> result = new ArrayList<MemberDTO>(); try { Statement stmt = conn.createStatement(); String sql = String.format("SELECT E.EMP_ID, E.EMP_NAME, E.SSN, TO_CHAR(E.IBSADATE, 'YYYY-MM-DD') AS IBSADATE" + ", C.CITY_NAME, E.TEL, B.BUSEO_NAME, J.JIKWI_NAME" + ", E.BASICPAY, E.SUDANG , (E.BASICPAY + E.SUDANG) AS GUBYO" + " FROM TBL_EMP E JOIN TBL_CITY C ON E.CITY_ID = C.CITY_ID" + " JOIN TBL_BUSEO B ON E.BUSEO_ID = B.BUSEO_ID" + " JOIN TBL_JIKWI J ON E.JIKWI_ID = J.JIKWI_ID" + " WHERE E.EMP_ID = %s" , id); ResultSet rs = stmt.executeQuery(sql); while (rs.next()) { MemberDTO dto = new MemberDTO(); dto.setId(rs.getString("EMP_ID")); dto.setName(rs.getString("EMP_NAME")); dto.setSsn(rs.getString("SSN")); dto.setIbsadate(rs.getString("IBSADATE")); dto.setCity_name(rs.getString("CITY_NAME")); dto.setTel(rs.getString("TEL")); dto.setBuseo_name(rs.getString("BUSEO_NAME")); dto.setJikwi_name(rs.getString("JIKWI_NAME")); dto.setBasicpay(rs.getInt("BASICPAY")); dto.setSudang(rs.getInt("SUDANG")); dto.setGubyo(rs.getInt("GUBYO")); result.add(dto); } } catch (Exception e) { System.out.println(e.toString()); } return result; }// end searchID() //2. 이름검색 public ArrayList<MemberDTO> searchName(String name) { ArrayList<MemberDTO> result = new ArrayList<MemberDTO>(); try { Statement stmt = conn.createStatement(); String sql = String.format("SELECT E.EMP_ID, E.EMP_NAME, E.SSN, TO_CHAR(E.IBSADATE, 'YYYY-MM-DD') AS IBSADATE" + ", C.CITY_NAME, E.TEL, B.BUSEO_NAME, J.JIKWI_NAME" + ", E.BASICPAY, E.SUDANG , (E.BASICPAY + E.SUDANG) AS GUBYO" + " FROM TBL_EMP E JOIN TBL_CITY C ON E.CITY_ID = C.CITY_ID" + " JOIN TBL_BUSEO B ON E.BUSEO_ID = B.BUSEO_ID" + " JOIN TBL_JIKWI J ON E.JIKWI_ID = J.JIKWI_ID" + " WHERE E.EMP_NAME = '%s'" , name); ResultSet rs = stmt.executeQuery(sql); while (rs.next()) { MemberDTO dto = new MemberDTO(); dto.setId(rs.getString("EMP_ID")); dto.setName(rs.getString("EMP_NAME")); dto.setSsn(rs.getString("SSN")); dto.setIbsadate(rs.getString("IBSADATE")); dto.setCity_name(rs.getString("CITY_NAME")); dto.setTel(rs.getString("TEL")); dto.setBuseo_name(rs.getString("BUSEO_NAME")); dto.setJikwi_name(rs.getString("JIKWI_NAME")); dto.setBasicpay(rs.getInt("BASICPAY")); dto.setSudang(rs.getInt("SUDANG")); dto.setGubyo(rs.getInt("GUBYO")); result.add(dto); } } catch (Exception e) { System.out.println(e.toString()); } return result; }// end searchName() //3. 부서검색 public ArrayList<MemberDTO> searchBuseo(String buseo) { ArrayList<MemberDTO> result = new ArrayList<MemberDTO>(); try { Statement stmt = conn.createStatement(); String sql = String.format("SELECT E.EMP_ID, E.EMP_NAME, E.SSN, TO_CHAR(E.IBSADATE, 'YYYY-MM-DD') AS IBSADATE" + ", C.CITY_NAME, E.TEL, B.BUSEO_NAME, J.JIKWI_NAME" + ", E.BASICPAY, E.SUDANG , (E.BASICPAY + E.SUDANG) AS GUBYO" + " FROM TBL_EMP E JOIN TBL_CITY C ON E.CITY_ID = C.CITY_ID" + " JOIN TBL_BUSEO B ON E.BUSEO_ID = B.BUSEO_ID" + " JOIN TBL_JIKWI J ON E.JIKWI_ID = J.JIKWI_ID" + " WHERE B.BUSEO_NAME = '%s'" , buseo); ResultSet rs = stmt.executeQuery(sql); while (rs.next()) { MemberDTO dto = new MemberDTO(); dto.setId(rs.getString("EMP_ID")); dto.setName(rs.getString("EMP_NAME")); dto.setSsn(rs.getString("SSN")); dto.setIbsadate(rs.getString("IBSADATE")); dto.setCity_name(rs.getString("CITY_NAME")); dto.setTel(rs.getString("TEL")); dto.setBuseo_name(rs.getString("BUSEO_NAME")); dto.setJikwi_name(rs.getString("JIKWI_NAME")); dto.setBasicpay(rs.getInt("BASICPAY")); dto.setSudang(rs.getInt("SUDANG")); dto.setGubyo(rs.getInt("GUBYO")); result.add(dto); } } catch (Exception e) { System.out.println(e.toString()); } return result; }// end searchBuseo() //4. 직위검색 public ArrayList<MemberDTO> searchJikwi(String jikwi) { ArrayList<MemberDTO> result = new ArrayList<MemberDTO>(); try { Statement stmt = conn.createStatement(); String sql = String.format("SELECT E.EMP_ID, E.EMP_NAME, E.SSN, TO_CHAR(E.IBSADATE, 'YYYY-MM-DD') AS IBSADATE" + ", C.CITY_NAME, E.TEL, B.BUSEO_NAME, J.JIKWI_NAME" + ", E.BASICPAY, E.SUDANG , (E.BASICPAY + E.SUDANG) AS GUBYO" + " FROM TBL_EMP E JOIN TBL_CITY C ON E.CITY_ID = C.CITY_ID" + " JOIN TBL_BUSEO B ON E.BUSEO_ID = B.BUSEO_ID" + " JOIN TBL_JIKWI J ON E.JIKWI_ID = J.JIKWI_ID" + " WHERE J.JIKWI_NAME = '%s'" , jikwi); ResultSet rs = stmt.executeQuery(sql); while (rs.next()) { MemberDTO dto = new MemberDTO(); dto.setId(rs.getString("EMP_ID")); dto.setName(rs.getString("EMP_NAME")); dto.setSsn(rs.getString("SSN")); dto.setIbsadate(rs.getString("IBSADATE")); dto.setCity_name(rs.getString("CITY_NAME")); dto.setTel(rs.getString("TEL")); dto.setBuseo_name(rs.getString("BUSEO_NAME")); dto.setJikwi_name(rs.getString("JIKWI_NAME")); dto.setBasicpay(rs.getInt("BASICPAY")); dto.setSudang(rs.getInt("SUDANG")); dto.setGubyo(rs.getInt("GUBYO")); result.add(dto); } } catch (Exception e) { System.out.println(e.toString()); } return result; }// end searchJikwi() // 직원 정보 수정 public int modify(MemberDTO dto) { int result = 0; try { Statement stmt = conn.createStatement(); String sql = String.format("UPDATE TBL_EMP" + " SET EMP_NAME = '%s', SSN = '%s', IBSADATE = TO_DATE('%s')" + ", CITY_ID = %d , TEL = '%s'" + ", BUSEO_ID = %d " + ", JIKWI_ID = %d " + ", BASICPAY = %d, SUDANG = %d" + " WHERE EMP_ID = %s" , dto.getName(), dto.getSsn(), dto.getIbsadate() , dto.getCity_id(), dto.getTel() , dto.getBuseo_id() , dto.getJikwi_id() , dto.getBasicpay(), dto.getSudang() , dto.getId()); result = stmt.executeUpdate(sql); stmt.close(); } catch (Exception e) { System.out.println(e.toString()); } return result; }//end modify() // 직원 정보 삭제 public int remove(String id) { int result = 0; try { Statement stmt = conn.createStatement(); String sql = String.format("DELETE FROM TBL_EMP WHERE EMP_ID = %s", id); result = stmt.executeUpdate(sql); stmt.close(); } catch (Exception e) { System.out.println(e.toString()); } return result; }// end remove() // 전체 인원수 조회 public int countAll() { int result = 0; try { Statement stmt = conn.createStatement(); String sql = "SELECT COUNT(*) AS COUNT FROM TBL_EMP"; ResultSet rs = stmt.executeQuery(sql); while (rs.next()) { result = rs.getInt("COUNT"); } rs.close(); stmt.close(); } catch (Exception e) { System.out.println(e.toString()); } return result; }// end countAll() // 검색 인원수 조회 //1. 사번검색 public int countId(String id) { int result = 0; try { Statement stmt = conn.createStatement(); String sql = String.format("SELECT COUNT(*) AS COUNT FROM TBL_EMP WHERE EMP_ID = %s", id); ResultSet rs = stmt.executeQuery(sql); while (rs.next()) { result = rs.getInt("COUNT"); } rs.close(); stmt.close(); } catch (Exception e) { System.out.println(e.toString()); } return result; }// end countId() //2. 이름검색 public int countName(String name) { int result = 0; try { Statement stmt = conn.createStatement(); String sql = String.format("SELECT COUNT(*) AS COUNT FROM TBL_EMP WHERE EMP_NAME = '%s'", name); ResultSet rs = stmt.executeQuery(sql); while (rs.next()) { result = rs.getInt("COUNT"); } rs.close(); stmt.close(); } catch (Exception e) { System.out.println(e.toString()); } return result; }// end countName() //3. 부서검색 public int countBuseo(String buseo) { int result = 0; try { Statement stmt = conn.createStatement(); String sql = String.format("SELECT COUNT(*) AS COUNT FROM TBL_EMP WHERE BUSEO_ID = (SELECT BUSEO_ID FROM TBL_BUSEO WHERE BUSEO_NAME = '%s')", buseo); ResultSet rs = stmt.executeQuery(sql); while (rs.next()) { result = rs.getInt("COUNT"); } rs.close(); stmt.close(); } catch (Exception e) { System.out.println(e.toString()); } return result; }// end countBuseo() //4. 직위검색 public int countJikwi(String jikwi) { int result = 0; try { Statement stmt = conn.createStatement(); String sql = String.format("SELECT COUNT(*) AS COUNT FROM TBL_EMP WHERE JIKWI_ID = (SELECT JIKWI_ID FROM TBL_JIKWI WHERE JIKWI_NAME = '%s')", jikwi); ResultSet rs = stmt.executeQuery(sql); while (rs.next()) { result = rs.getInt("COUNT"); } rs.close(); stmt.close(); } catch (Exception e) { System.out.println(e.toString()); } return result; }// end countBuseo() // 직위 최소 급여 조회 public int searchMinPay(String jikwi) { int result = 0; try { Statement stmt = conn.createStatement(); String sql = String.format("SELECT MIN_BASICPAY FROM TBL_JIKWI WHERE JIKWI_ID = (SELECT JIKWI_ID FROM TBL_JIKWI WHERE JIKWI_NAME = '%s')", jikwi); ResultSet rs = stmt.executeQuery(sql); while (rs.next()) { result = rs.getInt("MIN_BASICPAY"); } rs.close(); stmt.close(); } catch (Exception e) { System.out.println(e.toString()); } return result; }// end searchMinPay() // 지역 목록 조회 public ArrayList<MemberDTO> cityList() { ArrayList<MemberDTO> result = new ArrayList<MemberDTO>(); try { Statement stmt = conn.createStatement(); String sql = "SELECT CITY_NAME FROM TBL_CITY"; ResultSet rs = stmt.executeQuery(sql); while (rs.next()) { MemberDTO dto = new MemberDTO(); dto.setCity_name(rs.getString("CITY_NAME")); result.add(dto); } rs.close(); stmt.close(); } catch (Exception e) { System.out.println(e.toString()); } return result; }// end cityList() // 부서 목록 조회 public ArrayList<MemberDTO> buseoList() { ArrayList<MemberDTO> result = new ArrayList<MemberDTO>(); try { Statement stmt = conn.createStatement(); String sql = "SELECT BUSEO_NAME FROM TBL_BUSEO"; ResultSet rs = stmt.executeQuery(sql); while (rs.next()) { MemberDTO dto = new MemberDTO(); dto.setBuseo_name(rs.getString("BUSEO_NAME")); result.add(dto); } rs.close(); stmt.close(); } catch (Exception e) { System.out.println(e.toString()); } return result; }// end buseoList() // 직위 목록 조회 public ArrayList<MemberDTO> jikwiList() { ArrayList<MemberDTO> result = new ArrayList<MemberDTO>(); try { Statement stmt = conn.createStatement(); String sql = "SELECT JIKWI_NAME FROM TBL_JIKWI"; ResultSet rs = stmt.executeQuery(sql); while (rs.next()) { MemberDTO dto = new MemberDTO(); dto.setJikwi_name(rs.getString("JIKWI_NAME")); result.add(dto); } rs.close(); stmt.close(); } catch (Exception e) { System.out.println(e.toString()); } return result; }// end jikwiList() // 입력받은 도시명 --> 도시 ID 바꿔주는 기능 public int cNameToId(String city_name) { int result = 0; try { Statement stmt = conn.createStatement(); String sql = String.format("SELECT CITY_ID FROM TBL_CITY WHERE CITY_NAME = '%s'", city_name); ResultSet rs = stmt.executeQuery(sql); while (rs.next()) { result = rs.getInt("CITY_ID"); } rs.close(); stmt.close(); } catch (Exception e) { System.out.println(e.toString()); } return result; }// end cNameToId() // 입력받은 직위명 --> 직위 ID 바꿔주는 기능 public int jNameToId(String jikwi_name) { int result = 0; try { Statement stmt = conn.createStatement(); String sql = String.format("SELECT JIKWI_ID FROM TBL_JIKWI WHERE JIKWI_NAME = '%s'", jikwi_name); ResultSet rs = stmt.executeQuery(sql); while (rs.next()) { result = rs.getInt("JIKWI_ID"); } rs.close(); stmt.close(); } catch (Exception e) { System.out.println(e.toString()); } return result; }// end jNameToId() // 입력받은 부서명 --> 부서 ID 바꿔주는 기능 public int bNameToId(String buseo_name) { int result = 0; try { Statement stmt = conn.createStatement(); String sql = String.format("SELECT BUSEO_ID FROM TBL_BUSEO WHERE BUSEO_NAME = '%s'", buseo_name); ResultSet rs = stmt.executeQuery(sql); while (rs.next()) { result = rs.getInt("BUSEO_ID"); } rs.close(); stmt.close(); } catch (Exception e) { System.out.println(e.toString()); } return result; }// end bNameToId() }// end Class MemberDAO
- MemberProcess
/*======================== MemberProcess.java ==========================*/ /* ======[ 직원 관리 ]====== ========================= 1. 직원 정보 입력 2. 직원 전체 출력 - 사번 정렬 - 이름 정렬 - 부서 정렬 - 직위 정렬 - 급여 내림차순 정렬 3. 직원 검색 출력 - 사번 검색 - 이름 검색 - 부서 검색 - 직위 검색 4. 직원 정보 수정 5. 직원 정보 삭제 ========================= >> 메뉴 선택(1~5, -1 종료) : */ package com.test; import java.util.ArrayList; import java.util.Scanner; public class MemberProcess { private MemberDAO dao; public MemberProcess() { dao = new MemberDAO(); } // 직원 정보 입력 기능 public void sawonInsert() { try { dao.connection(); Scanner sc = new Scanner(System.in); System.out.println(); System.out.println("직원 정보 입력 ------------------------------------------------------------------"); System.out.print(">> 이름 : "); String name = sc.next(); String ssn; do { System.out.print(">> 주민등록번호(yymmdd-nnnnnnn) : "); ssn = sc.next(); if (ssn.length()!=14) { System.out.println("올바른 형식대로 입력하세요."); } } while (ssn.length() != 14); String ibsadate; do { System.out.print(">> 입사일(yyyy-mm-dd) : "); ibsadate = sc.next(); if (ibsadate.length() != 10) { System.out.println("올바른 형식대로 입력하세요."); } } while (ibsadate.length() != 10); String city_name; System.out.print(">> 지역("); // 지역 목록 ArrayList<MemberDTO> cityList = dao.cityList(); for (MemberDTO city : cityList) { System.out.printf("%s/",city.getCity_name()); } System.out.print(") : "); city_name = sc.next(); // 지역명 -> 지역 ID int city_id = dao.cNameToId(city_name); System.out.print(">> 전화번호 : "); String tel = sc.next(); System.out.print(">> 부서("); // 부서 목록 ArrayList<MemberDTO> buseoList = dao.buseoList(); for (MemberDTO buseo : buseoList) { System.out.printf("%s/",buseo.getBuseo_name()); } System.out.print(") : "); String buseo_name = sc.next(); // 부서명 -> 부서 ID int buseo_id = dao.bNameToId(buseo_name); System.out.print(">> 직위("); // 직위 목록 ArrayList<MemberDTO> jikwiList = dao.jikwiList(); for (MemberDTO jikwi : jikwiList) { System.out.printf("%s/",jikwi.getJikwi_name()); } System.out.print(") : "); String jikwi_name = sc.next(); // 직위명 -> 직위 ID int jikwi_id = dao.jNameToId(jikwi_name); int basicpay; do { System.out.printf(">> 기본급(최소 %d 이상) : ", dao.searchMinPay(jikwi_name)); basicpay = sc.nextInt(); if (basicpay >= dao.searchMinPay(jikwi_name)) { break; } else { System.out.printf("해당 %s 직급의 기본급 %d 이상을 입력하세요.\n", jikwi_name, dao.searchMinPay(jikwi_name)); } } while (true); System.out.print(">> 수당 : "); int sudang = sc.nextInt(); MemberDTO dto = new MemberDTO(); dto.setName(name); dto.setSsn(ssn); dto.setIbsadate(ibsadate); dto.setCity_id(city_id); dto.setTel(tel); dto.setBuseo_id(buseo_id); dto.setJikwi_id(jikwi_id); dto.setBasicpay(basicpay); dto.setSudang(sudang); int result = dao.add(dto); if (result > 0) { System.out.println(); System.out.println(">> 직원 정보 입력 완료~!!!"); System.out.println("------------------------------------------------------------------ 직원 정보 입력 "); } dao.close(); } catch (Exception e) { System.out.println(e.toString()); } }// end sawonInsert() // 직원 전체 출력 기능 //-- 1.사번 정렬 public void sawonSelectId() { try { dao.connection(); int count = dao.countAll(); System.out.println(); System.out.println(); System.out.printf(">> 전체 인원 : %d 명\n", count); System.out.println(); System.out.println(" 사번 이름 주민번호 입사일 지역 전화번호 부서 직위 기본급 수당 급여"); System.out.println("=========================================================================================================="); ArrayList<MemberDTO> list = dao.listsId(); for (MemberDTO dto : list) { System.out.printf(" %5s %6s %14s %10s %4s %13s %6s %4s %8d %8d %10d\n" ,dto.getId(), dto.getName(), dto.getSsn(), dto.getIbsadate(), dto.getCity_name(), dto.getTel() ,dto.getBuseo_name(), dto.getJikwi_name(), dto.getBasicpay(), dto.getSudang(), dto.getGubyo() ); } System.out.println("=========================================================================================================="); dao.close(); } catch (Exception e) { System.out.println(e.toString()); } }// end sawonSelectId() //-- 2.이름 정렬 public void sawonSelectName() { try { dao.connection(); int count = dao.countAll(); System.out.println(); System.out.printf(">> 전체 인원 : %d 명\n", count); System.out.println(); System.out.println("=========================================================================================================="); System.out.println(" 사번 이름 주민번호 입사일 지역 전화번호 부서 직위 기본급 수당 급여"); ArrayList<MemberDTO> list = dao.listsName(); for (MemberDTO dto : list) { System.out.printf(" %5s %6s %14s %10s %4s %13s %6s %4s %8d %8d %10d\n" ,dto.getId(), dto.getName(), dto.getSsn(), dto.getIbsadate(), dto.getCity_name(), dto.getTel() ,dto.getBuseo_name(), dto.getJikwi_name(), dto.getBasicpay(), dto.getSudang(), dto.getGubyo() ); } System.out.println("=========================================================================================================="); dao.close(); } catch (Exception e) { System.out.println(e.toString()); } }// end sawonSelectName() //-- 3.부서 정렬 public void sawonSelectBuseo() { try { dao.connection(); int count = dao.countAll(); System.out.println(); System.out.printf(">> 전체 인원 : %d 명\n", count); System.out.println(); System.out.println(" 사번 이름 주민번호 입사일 지역 전화번호 부서 직위 기본급 수당 급여"); System.out.println("=========================================================================================================="); ArrayList<MemberDTO> list = dao.listsBuseo(); for (MemberDTO dto : list) { System.out.printf(" %5s %6s %14s %10s %4s %13s %6s %4s %8d %8d %10d\n" ,dto.getId(), dto.getName(), dto.getSsn(), dto.getIbsadate(), dto.getCity_name(), dto.getTel() ,dto.getBuseo_name(), dto.getJikwi_name(), dto.getBasicpay(), dto.getSudang(), dto.getGubyo() ); } System.out.println("=========================================================================================================="); dao.close(); } catch (Exception e) { System.out.println(e.toString()); } }// end sawonSelectBuseo() //-- 4.직위 정렬 public void sawonSelectJikwi() { try { dao.connection(); int count = dao.countAll(); System.out.println(); System.out.printf(">> 전체 인원 : %d 명\n", count); System.out.println(); System.out.println(" 사번 이름 주민번호 입사일 지역 전화번호 부서 직위 기본급 수당 급여"); System.out.println("=========================================================================================================="); ArrayList<MemberDTO> list = dao.listsJikwi(); for (MemberDTO dto : list) { System.out.printf(" %5s %6s %14s %10s %4s %13s %6s %4s %8d %8d %10d\n" ,dto.getId(), dto.getName(), dto.getSsn(), dto.getIbsadate(), dto.getCity_name(), dto.getTel() ,dto.getBuseo_name(), dto.getJikwi_name(), dto.getBasicpay(), dto.getSudang(), dto.getGubyo() ); } System.out.println("=========================================================================================================="); dao.close(); } catch (Exception e) { System.out.println(e.toString()); } }// end sawonSelectJikwi() //-- 5.급여 내림차순 정렬 public void sawonSelectGubyo() { try { dao.connection(); int count = dao.countAll(); System.out.println(); System.out.printf(">> 전체 인원 : %d 명\n", count); System.out.println(); System.out.println(" 사번 이름 주민번호 입사일 지역 전화번호 부서 직위 기본급 수당 급여"); System.out.println("=========================================================================================================="); ArrayList<MemberDTO> list = dao.listsGubyo(); for (MemberDTO dto : list) { System.out.printf(" %5s %6s %14s %10s %4s %13s %6s %4s %8d %8d %10d\n" ,dto.getId(), dto.getName(), dto.getSsn(), dto.getIbsadate(), dto.getCity_name(), dto.getTel() ,dto.getBuseo_name(), dto.getJikwi_name(), dto.getBasicpay(), dto.getSudang(), dto.getGubyo() ); } System.out.println("=========================================================================================================="); dao.close(); } catch (Exception e) { System.out.println(e.toString()); } }// end sawonSelectGubyo() // 직원 검색 출력 기능 //-- 1.사번 검색 public void sawonSearchId() { try { dao.connection(); Scanner sc = new Scanner(System.in); do { System.out.print(">> 사원 번호 입력 : "); String id = sc.next(); int count = dao.countId(id); if (id.equals(".")) { break; } else if (count != 0) { System.out.println(); System.out.printf(">> 전체 인원 : %d 명\n", count); System.out.println(); System.out.println(" 사번 이름 주민번호 입사일 지역 전화번호 부서 직위 기본급 수당 급여"); System.out.println("=========================================================================================================="); ArrayList<MemberDTO> list = dao.searchId(id); for (MemberDTO dto : list) { System.out.printf(" %5s %6s %14s %10s %4s %13s %6s %4s %8d %8d %10d\n" ,dto.getId(), dto.getName(), dto.getSsn(), dto.getIbsadate(), dto.getCity_name(), dto.getTel() ,dto.getBuseo_name(), dto.getJikwi_name(), dto.getBasicpay(), dto.getSudang(), dto.getGubyo() ); } System.out.println("=========================================================================================================="); break; } System.out.println(">> 해당 번호는 존재하지 않습니다."); } while (true); dao.close(); } catch (Exception e) { System.out.println(e.toString()); } }// end sawonSearchId() //-- 2.이름 검색 public void sawonSearchName() { try { dao.connection(); Scanner sc = new Scanner(System.in); do { System.out.print(">> 이름 입력 : "); String name = sc.next(); int count = dao.countName(name); if (name.equals(".")) { break; } else if (count != 0) { System.out.println(); System.out.printf(">> 전체 인원 : %d 명\n", count); System.out.println(); System.out.println(" 사번 이름 주민번호 입사일 지역 전화번호 부서 직위 기본급 수당 급여"); System.out.println("=========================================================================================================="); ArrayList<MemberDTO> list = dao.searchName(name); for (MemberDTO dto : list) { System.out.printf(" %5s %6s %14s %10s %4s %13s %6s %4s %8d %8d %10d\n" ,dto.getId(), dto.getName(), dto.getSsn(), dto.getIbsadate(), dto.getCity_name(), dto.getTel() ,dto.getBuseo_name(), dto.getJikwi_name(), dto.getBasicpay(), dto.getSudang(), dto.getGubyo() ); } System.out.println("=========================================================================================================="); break; } System.out.println(">> 해당 사원이 존재하지 않습니다."); } while (true); dao.close(); } catch (Exception e) { System.out.println(e.toString()); } }// end sawonSearchName() //-- 3.부서 검색 public void sawonSearchBuseo() { try { dao.connection(); Scanner sc = new Scanner(System.in); do { System.out.print(">> 부서명 입력 : "); String buseo = sc.next(); int count = dao.countBuseo(buseo); if (buseo.equals(".")) { break; } else if (count != 0) { System.out.println(); System.out.printf(">> 전체 인원 : %d 명\n", count); System.out.println(); System.out.println(" 사번 이름 주민번호 입사일 지역 전화번호 부서 직위 기본급 수당 급여"); System.out.println("=========================================================================================================="); ArrayList<MemberDTO> list = dao.searchBuseo(buseo); for (MemberDTO dto : list) { System.out.printf(" %5s %6s %14s %10s %4s %13s %6s %4s %8d %8d %10d\n" ,dto.getId(), dto.getName(), dto.getSsn(), dto.getIbsadate(), dto.getCity_name(), dto.getTel() ,dto.getBuseo_name(), dto.getJikwi_name(), dto.getBasicpay(), dto.getSudang(), dto.getGubyo() ); } System.out.println("=========================================================================================================="); break; } System.out.println(">> 해당 부서는 존재하지 않습니다."); } while (true); dao.close(); } catch (Exception e) { System.out.println(e.toString()); } }// end sawonSearchBuseo() //-- 4.직위 검색 public void sawonSearchJikwi() { try { dao.connection(); Scanner sc = new Scanner(System.in); do { System.out.println(); System.out.print(">> 직위 입력 : "); String jikwi = sc.next(); int count = dao.countJikwi(jikwi); if (jikwi.equals(".")) { break; } else if (count != 0) { System.out.println(); System.out.printf(">> 전체 인원 : %d 명\n", count); System.out.println(); System.out.println(" 사번 이름 주민번호 입사일 지역 전화번호 부서 직위 기본급 수당 급여"); System.out.println("=========================================================================================================="); ArrayList<MemberDTO> list = dao.searchJikwi(jikwi); for (MemberDTO dto : list) { System.out.printf(" %5s %6s %14s %10s %4s %13s %6s %4s %8d %8d %10d\n" ,dto.getId(), dto.getName(), dto.getSsn(), dto.getIbsadate(), dto.getCity_name(), dto.getTel() ,dto.getBuseo_name(), dto.getJikwi_name(), dto.getBasicpay(), dto.getSudang(), dto.getGubyo() ); } System.out.println("=========================================================================================================="); break; } System.out.println(">> 해당 직위는 존재하지 않습니다."); } while (true); dao.close(); } catch (Exception e) { System.out.println(e.toString()); } }// end sawonSearchJikwi() // 직원 정보 수정 기능 public void sawonModify() { try { Scanner sc = new Scanner(System.in); System.out.println(); System.out.print(">> 수정 할 사원 번호 입력 : "); String id = sc.next(); dao.connection(); ArrayList<MemberDTO> list = dao.searchId(id); if (list.size() > 0) { System.out.println(); System.out.println(" 사번 이름 주민번호 입사일 지역 전화번호 부서 직위 기본급 수당 급여"); System.out.println("=========================================================================================================="); for (MemberDTO dto : list) { System.out.printf(" %5s %6s %14s %10s %4s %13s %6s %4s %8d %8d %10d\n" ,dto.getId(), dto.getName(), dto.getSsn(), dto.getIbsadate(), dto.getCity_name(), dto.getTel() ,dto.getBuseo_name(), dto.getJikwi_name(), dto.getBasicpay(), dto.getSudang(), dto.getGubyo() ); } System.out.println("=========================================================================================================="); System.out.println(); System.out.println(">> 수정 데이터 입력"); System.out.print(">> 이름 : "); String name = sc.next(); System.out.print(">> 주민등록번호(yymmdd-nnnnnnn) : "); String ssn = sc.next(); System.out.print(">> 입사일(yyyy-mm-dd) : "); String ibsadate = sc.next(); System.out.print(">> 지역("); // 지역 목록 ArrayList<MemberDTO> cityList = dao.cityList(); for (MemberDTO city : cityList) { System.out.printf("%s/",city.getCity_name()); } System.out.print(") : "); String city_name = sc.next(); // 지역명 -> 지역 ID int city_id = dao.cNameToId(city_name); System.out.print(">> 전화번호 : "); String tel = sc.next(); System.out.print(">> 부서("); // 부서 목록 ArrayList<MemberDTO> buseoList = dao.buseoList(); for (MemberDTO buseo : buseoList) { System.out.printf("%s/",buseo.getBuseo_name()); } System.out.print(") : "); String buseo_name = sc.next(); // 부서명 -> 부서 ID int buseo_id = dao.bNameToId(buseo_name); System.out.print(">> 직위("); // 직위 목록 ArrayList<MemberDTO> jikwiList = dao.jikwiList(); for (MemberDTO jikwi : jikwiList) { System.out.printf("%s/",jikwi.getJikwi_name()); } System.out.print(") : "); String jikwi_name = sc.next(); // 직위명 -> 직위 ID int jikwi_id = dao.jNameToId(jikwi_name); System.out.printf(">> 기본급(최소 %d 이상) : ", dao.searchMinPay(jikwi_name)); int basicpay = sc.nextInt(); System.out.print(">> 수당 : "); int sudang = sc.nextInt(); MemberDTO dto = new MemberDTO(); dto.setId(id); dto.setName(name); dto.setSsn(ssn); dto.setIbsadate(ibsadate); dto.setCity_id(city_id); dto.setTel(tel); dto.setBuseo_id(buseo_id); dto.setJikwi_id(jikwi_id); dto.setBasicpay(basicpay); dto.setSudang(sudang); int result = dao.modify(dto); if (result > 0) { System.out.println(); System.out.println(">> 수정이 완료 되었습니다."); } } else { System.out.println(); System.out.println(">> 수정 대상이 존재하지 않습니다."); } dao.close(); } catch (Exception e) { System.out.println(e.toString()); } }// end sawonModify() // 직원 정보 삭제 기능 public void sawonDelete() { try { Scanner sc = new Scanner(System.in); System.out.println(); System.out.print(">> 삭제할 사원 번호 입력 : "); String id = sc.next(); dao.connection(); ArrayList<MemberDTO> list = dao.searchId(id); if (list.size() > 0) { System.out.println(); System.out.println(" 사번 이름 주민번호 입사일 지역 전화번호 부서 직위 기본급 수당 급여"); System.out.println("=========================================================================================================="); for (MemberDTO dto : list) { System.out.printf(" %5s %6s %14s %10s %4s %13s %6s %4s %8d %8d %10d\n" ,dto.getId(), dto.getName(), dto.getSsn(), dto.getIbsadate(), dto.getCity_name(), dto.getTel() ,dto.getBuseo_name(), dto.getJikwi_name(), dto.getBasicpay(), dto.getSudang(), dto.getGubyo() ); } System.out.println("=========================================================================================================="); System.out.println(); System.out.print(">> 정말로 삭제하시겠습니까?(Y/N) : "); String ans = sc.next(); if (ans.equals("Y") || ans.equals("y")) { int res = dao.remove(id); if (res > 0) System.out.println(); System.out.println(">> 삭제 완료 되었습니다."); } else { System.out.println(); System.out.println(">> 취소 되었습니다."); } } else { System.out.println(); System.out.println(">> 삭제 대상이 존재하지 않습니다."); } dao.close(); } catch (Exception e) { System.out.println(e.toString()); } }// end sawonDelete() }
- MemberMain
/*===================== MemberMain.java =======================*/ /* ○ 직원 관리 프로그램을 구현한다. - 데이터베이스 연동 프로그램으로 작성한다. - MemberDTO, MemberDAO 를 활용한다. - 메뉴 구성 및 기능을 구현한다. → MemberProcess 실행 예) ======[ 직원 관리 ]====== ========================= 1. 직원 정보 입력 2. 직원 전체 출력 - 사번 정렬 - 이름 정렬 - 부서 정렬 - 직위 정렬 - 급여 내림차순 정렬 3. 직원 검색 출력 - 사번 검색 - 이름 검색 - 부서 검색 - 직위 검색 4. 직원 정보 수정 5. 직원 정보 삭제 ========================= >> 메뉴 선택(1~5, -1 종료) : 1 직원 정보 입력 ------------------------------------------------------------------ 이름 : 김재혁 주민등록번호(yymmdd-nnnnnnn) : 980202-1234567 입사일(yyyy-mm-dd) : 2019-06-08 지역(강원/경기/경남/경북/부산/서울/인천/전남/전북/제주/충남/충북/) : 경기 -- 지역도 city 테이블에 있는 것 만 출력 전화번호 : 010-1212-3434 부서(개발부/기획부/영업부/인사부/자재부/총무부/홍보부/) : 개발부 -- 부서도 buseo 테이블에 있는 것 만 출력 직위(사장/전무/상무/이사/부장/차장/과장/대리/사원/) : 대리 기본급(최소 1800000 이상) : 4000000 -- 직위에 따른 최소 급여로 출력 수당 : 1000000 직원 정보 입력 완료~!!! ------------------------------------------------------------------ 직원 정보 입력 ======[ 직원 관리 ]====== ========================= 1. 직원 정보 입력 2. 직원 전체 출력 - 사번 정렬 - 이름 정렬 - 부서 정렬 - 직위 정렬 - 급여 내림차순 정렬 3. 직원 검색 출력 - 사번 검색 - 이름 검색 - 부서 검색 - 직위 검색 4. 직원 정보 수정 5. 직원 정보 삭제 ========================= >> 메뉴 선택(1~5, -1 종료) : 2 1. 사번 정렬 2. 이름 정렬 3. 부서 정렬 4. 직위 정렬 5. 급여 내림차순 정렬 >> 선택(1~5, -1 종료) : -1 ======[ 직원 관리 ]====== ========================= 1. 직원 정보 입력 2. 직원 전체 출력 - 사번 정렬 - 이름 정렬 - 부서 정렬 - 직위 정렬 - 급여 내림차순 정렬 3. 직원 검색 출력 - 사번 검색 - 이름 검색 - 부서 검색 - 직위 검색 4. 직원 정보 수정 5. 직원 정보 삭제 ========================= >> 메뉴 선택(1~5, -1 종료) : 2 1. 사번 정렬 2. 이름 정렬 3. 부서 정렬 4. 직위 정렬 5. 급여 내림차순 정렬 >> 선택(1~5, -1 종료) : 1 전체 인원 : xx 명 사번 이름 주민번호 입사일 지역 전화번호 부서 직위 기본급 수당 급여 -- id 가 아닌 실제 값이 출력되게 구성 1001 -- 급여 = 기본급 + 수당 1002 1003 : ... 1060 ======[ 직원 관리 ]====== ========================= 1. 직원 정보 입력 2. 직원 전체 출력 - 사번 정렬 - 이름 정렬 - 부서 정렬 - 직위 정렬 - 급여 내림차순 정렬 3. 직원 검색 출력 - 사번 검색 - 이름 검색 - 부서 검색 - 직위 검색 4. 직원 정보 수정 5. 직원 정보 삭제 ========================= >> 메뉴 선택(1~5, -1 종료) : */ package com.test; import java.util.Scanner; public class MemberMain { public static void main(String[] args) { Scanner sc = new Scanner(System.in); MemberProcess prc = new MemberProcess(); do { System.out.println(); System.out.println("======[ 직원 관리 ]======"); System.out.println("========================="); System.out.println("1. 직원 정보 입력"); System.out.println("2. 직원 전체 출력"); System.out.println(" - 사번 정렬"); System.out.println(" - 이름 정렬"); System.out.println(" - 부서 정렬"); System.out.println(" - 직위 정렬"); System.out.println(" - 급여 내림차순 정렬"); System.out.println("3. 직원 검색 출력"); System.out.println(" - 사번 검색"); System.out.println(" - 이름 검색"); System.out.println(" - 부서 검색"); System.out.println(" - 직위 검색"); System.out.println("4. 직원 정보 수정"); System.out.println("5. 직원 정보 삭제"); System.out.println("========================="); System.out.print(">> 메뉴 선택(1~5, -1 종료) : "); int choice = sc.nextInt(); if (choice == -1) { System.out.println(); System.out.println(">> 프로그램이 종료되었습니다."); return; } else if (choice == 1) { prc.sawonInsert(); } else if (choice == 2) { do { System.out.println(); System.out.println("1. 사번 정렬"); System.out.println("2. 이름 정렬"); System.out.println("3. 부서 정렬"); System.out.println("4. 직위 정렬"); System.out.println("5. 급여 내림차순 정렬"); System.out.print(">> 선택(1~5, -1 뒤로가기) : "); int choice2 = sc.nextInt(); if (choice2 == -1) { break; }else if (choice2 == 1) { prc.sawonSelectId(); }else if (choice2 == 2) { prc.sawonSelectName(); }else if (choice2 == 3) { prc.sawonSelectBuseo(); }else if (choice2 == 4) { prc.sawonSelectJikwi(); }else if (choice2 == 5) { prc.sawonSelectGubyo(); }else { System.out.println(""); System.out.println(">> 해당 번호는 존재하지 않습니다."); } } while (true); } else if (choice == 3) { do { System.out.println(); System.out.println("1. 사번 검색"); System.out.println("2. 이름 검색"); System.out.println("3. 부서 검색"); System.out.println("4. 직위 검색"); System.out.print(">> 선택(1~4, -1 뒤로가기) : "); int choice3 = sc.nextInt(); if (choice3 == -1) { break; }else if (choice3 == 1) { prc.sawonSearchId(); }else if (choice3 == 2) { prc.sawonSearchName(); }else if (choice3 == 3) { prc.sawonSearchBuseo(); }else if (choice3 == 4) { prc.sawonSearchJikwi(); }else { System.out.println(); System.out.println(">> 해당 번호는 존재하지 않습니다."); } } while (true); } else if (choice == 4) { prc.sawonModify(); } else if (choice == 5) { prc.sawonDelete(); } else { System.out.println(); System.out.println(">> 해당 번호는 존재하지 않습니다."); } } while (true); } }
제출용 파일 만들기 728x90'SsY > Class' 카테고리의 다른 글
007. PreparedStatement / 성적 처리 프로그램 구현 (0) 2023.05.02 006. DB 연동 직원 관리 프로그램 구현 (해설) (0) 2023.04.28 004. DAO/DTO/VO 개념, 성적 처리 → 데이터베이스 연동(데이터베이스 연결 및 액션 처리) (0) 2023.04.25 003. Singleton(싱글톤) 패턴으로 DB연결 + DAO/DTO 클래스로 문제 해결 (0) 2023.04.24 002. JDBC 사전 설정, JDBC 프로그래밍 절차, Eclipse 사용법 (0) 2023.04.21