ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 005. DB 연동 직원 관리 프로그램 구현 (DTO, DAO, PROCESS, MAIN)
    SsY/Class 2023. 4. 27. 10:42
    728x90
    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
Designed by planet-si