Data Scientist 옌

매일 발전하는 IT문제해결사

국비지원교육 (22.01-22.07)/강의노트

22-03-10(목) 029일차 [Java, Oracle] 화면-서비스-다오-sql-vo-common 이어지는 검색하기

옌炎 2022. 5. 10. 22:31
728x90

수업내용


1교시 (09:30-10:20)

  • 지난 시간 복습
  • BETWEEN A AND B : FROM ~ TO 구간 검색

    ORDER BY : 값을 정렬하는 것 : sorting : 소팅

    IN(A,B) : OR 검색

    SUBSTR : 문자열을 원하는 인덱스로 추출하기 : 문자열 쪼개기
        SUBSTR(문자열, 시작위치, 길)
        시작위치 : 인덱스 : +1, -1

    LIKE % _ : A%, %A, %A%
        LIKE 검색을 자바하고 연동할 때
        LIKE '%A'
        LIKE '%?' place holder 사용할 때 ???

    DISTINCT : 중복 생략 컬럼 : 조회된 컬럼의 중복 제거

    ROWNUM : 조회된 로우의 수
        WHERE ROWNUM <= N;

    TO_CHAR : 날짜, 숫자 값을 문자열로 변환하는 함수

    TO_DATE : 날짜 형식으로 변환
        SELECT TO_CHAR(TO_DATE(AA.HIREDATE), 'YYYY-MM-DD') AS HIREDATE
                  ,AA.JOB                                                         AS JOB
        FROM (SELECT HIREDATE, JOB FROM EMP WHERE ROWNUM <= 1) AA;

    NULL 데이터는 IS, IS NOT 사용한다. 등호 연산자는 사용하지 않는다.
    IS NULL : 컬럼 = NULL
    IS NOT NULL : 컬럼 NULL 아닌것 : 컬럼 <> NULL

2교시 (10:30-11:20)

  • 지난 시간 복습
  • NVL : NVL(첫번째 매개변수, 두번째 매개변수)
    첫 번째 매개변수 : NULL 이 있을 수 있는 컬럼명
    두 번째 매개변수 : 값 : 숫자 문자 다 가능

    NVL2(첫번째 매개변수, 두번째 매개변수, 세번째 매개변수)
    첫 번째 매개변수 : NULL 이 있을 수 있는 컬럼명
    두 번째 매개변수 : NULL 이 아닌 경우 첫 번째 매개변수 값 출력
    세 번째 매개변수 : NULL 인 경우 세 번째 매개변수 값 출력

    NOT 연산자 지양 :

    SELECT A.* FROM SCOTT.EMP A
    WHERE 1=1
    AND TO_CHAR(TO_DATE(A.HIREDATE), 'YYYYMMDD') <= TO_CHAR(TO_DATE('1981/12/31'), 'YYYYMMDD')
    AND TO_CHAR(TO_DATE(A.HIREDATE), 'YYYYMMDD') >= TO_CHAR(TO_DATE('1981/01/01'), 'YYYYMMDD');

    쿼리문 만들 때
    단문 쿼리 만들어서 눈으로 확인하고 쿼리문 합치기

    사칙연산

3교시 (11:30-12:20)

  • OracleTest_6
package a.b.c.oracle;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.Scanner;

import a.b.c.oracle.vo.EmpVO;

public class OracleTest_6 {

	// DataSource 정보 : 데이터베이스 연결 정보
	public static final String JDBC_DRIVER = "oracle.jdbc.driver.OracleDriver";
	public static final String JDBC_URL = "jdbc:oracle:thin:@localhost:1521:orclKSY00";
	public static final String JDBC_USER = "scott";
	public static final String JDBC_PASSWORD = "tiger";
		
	// sql Query 
	public static String sqlQuery = "SELECT EMPNO, ENAME, JOB, MGR FROM EMP WHERE EMPNO = ? AND ENAME = UPPER(?)";	
		
	// 생성자 
	public OracleTest_6() {

		try {
			Class.forName(JDBC_DRIVER);
		} catch (Exception e) {
			System.out.println("JDBC 드라이버를 찾지 못했어요 >>> : " + e.getMessage());
		}
	}
		
	public ArrayList<EmpVO> empSelect(EmpVO evo) {
			
		ArrayList<EmpVO> aList = null;
			
		try {
				
			Connection conn = DriverManager.getConnection(JDBC_URL, JDBC_USER, JDBC_PASSWORD);			
				
			PreparedStatement pstmt = conn.prepareStatement(sqlQuery);	
			pstmt.setString(1,  evo.getEmpno());
			pstmt.setString(2,  evo.getEname());
				
			ResultSet rsRs = pstmt.executeQuery();
				
			if (rsRs !=null) {
				aList = new ArrayList<EmpVO>();
					
				while (rsRs.next()) {
						
					EmpVO _evo = new EmpVO();
						
					_evo.setEmpno(rsRs.getString("EMPNO"));
					_evo.setEname(rsRs.getString("ENAME"));
					_evo.setJob(rsRs.getString("JOB"));
					_evo.setMgr(rsRs.getString("MGR"));
						
					aList.add(_evo);
				}				
			}
				
		} catch (Exception e) {
			System.out.println(e);
		}
			
		return aList;
	}
		
	public static void main(String[] args) {
		// TODO Auto-generated method stub

OracleTest_6 ot6 = new OracleTest_6();
		
		System.out.println("검색할 사원의 사번과 이름을 입력하시오 >>> : ");
		Scanner sc = new Scanner(System.in);
		String empno = sc.next();
		System.out.println("검색할 사원의 사번 >>> : " + empno);
		String ename = sc.next();
		System.out.println("검색할 사원의 이름 >>> : " + ename);
		
//		EmpVO evo = new EmpVO();
		
		EmpVO evo = null;
		evo = new EmpVO();
		evo.setEmpno(empno);
		evo.setEname(ename);
		
		ArrayList<EmpVO> aList = ot6.empSelect(evo);
		
		if (aList !=null && aList.size() > 0) {
			
			for (int i=0; i < aList.size(); i++) {
				EmpVO _evo = aList.get(i);
				System.out.print(_evo.getEmpno() + " : ");
				System.out.print(_evo.getEname() + " : ");
				System.out.print(_evo.getJob() + " : ");			
				System.out.println(_evo.getMgr());
			}
		}
	}
}

4교시 (12:30-13:20)

  • OracleTest_7
package a.b.c.oracle;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.Scanner;

import a.b.c.oracle.vo.EmpVO;

public class OracleTest_7 {

	// DataSource 정보 : 데이터베이스 연결 정보
	public static final String JDBC_DRIVER = "oracle.jdbc.driver.OracleDriver";
	public static final String JDBC_URL = "jdbc:oracle:thin:@localhost:1521:orclKSY00";
	public static final String JDBC_USER = "scott";
	public static final String JDBC_PASSWORD = "tiger";
		
	// sql Query 
	// 오라클에서는 || 더하기 연산자  concat 연산자 
//	public static String sqlQuery = "SELECT EMPNO, ENAME, JOB, MGR FROM EMP WHERE EMPNO LIKE ? || '%' ";	
//	public static String sqlQuery = "SELECT EMPNO, ENAME, JOB, MGR FROM EMP WHERE EMPNO LIKE '%' || ? ";	
	public static String sqlQuery = "SELECT EMPNO, ENAME, JOB, MGR FROM EMP WHERE EMPNO LIKE '%' || ? || '%' ";	
	public static String sqlQuery_1 = "SELECT EMPNO, ENAME, JOB, MGR FROM EMP WHERE EMPNO LIKE ? ";	
		
	// 생성자 
	public OracleTest_7() {

		try {
			Class.forName(JDBC_DRIVER);
		} catch (Exception e) {
			System.out.println("JDBC 드라이버를 찾지 못했어요 >>> : " + e.getMessage());
		}
	}
		
	public ArrayList<EmpVO> empSelect(EmpVO evo) {
			
		ArrayList<EmpVO> aList = null;
			
		try {
				
			Connection conn = DriverManager.getConnection(JDBC_URL, JDBC_USER, JDBC_PASSWORD);			
				
			PreparedStatement pstmt = conn.prepareStatement(sqlQuery);	
			pstmt.setString(1,  evo.getEmpno());
				
			ResultSet rsRs = pstmt.executeQuery();
				
			if (rsRs !=null) {
				aList = new ArrayList<EmpVO>();
					
				while (rsRs.next()) {
						
					EmpVO _evo = new EmpVO();
						
					_evo.setEmpno(rsRs.getString("EMPNO"));
					_evo.setEname(rsRs.getString("ENAME"));
					_evo.setJob(rsRs.getString("JOB"));
					_evo.setMgr(rsRs.getString("MGR"));
						
					aList.add(_evo);
				}				
			}
				
		} catch (Exception e) {
			System.out.println(e);
		}
			
		return aList;
	}
	
	public ArrayList<EmpVO> empSelect_1(EmpVO evo) {
		
		ArrayList<EmpVO> aList = null;
		
		try {
			
			Connection conn = DriverManager.getConnection(JDBC_URL, JDBC_USER, JDBC_PASSWORD);			
			
			PreparedStatement pstmt = conn.prepareStatement(sqlQuery_1);	
			pstmt.setString(1,  "%" + evo.getEmpno() + "%");
			
			ResultSet rsRs = pstmt.executeQuery();
			
			if (rsRs !=null) {
				aList = new ArrayList<EmpVO>();
				
				while (rsRs.next()) {
					
					EmpVO _evo = new EmpVO();
					
					_evo.setEmpno(rsRs.getString("EMPNO"));
					_evo.setEname(rsRs.getString("ENAME"));
					_evo.setJob(rsRs.getString("JOB"));
					_evo.setMgr(rsRs.getString("MGR"));
					
					aList.add(_evo);
				}				
			}
			
		} catch (Exception e) {
			System.out.println(e);
		}
		
		return aList;
	}

	public static void main(String[] args) {
		// TODO Auto-generated method stub

		OracleTest_7 ot7 = new OracleTest_7();
		
		System.out.println("검색할 사원의 사번을 입력하시오 >>> : ");
		Scanner sc = new Scanner(System.in);
		String empno = sc.next();
		System.out.println("검색할 사원의 사번 >>> : " + empno);
		
		EmpVO evo = null;
		evo = new EmpVO();
		evo.setEmpno(empno);
		
//		ArrayList<EmpVO> aList = ot7.empSelect(evo);
		ArrayList<EmpVO> aList = ot7.empSelect_1(evo);
		
		if (aList !=null && aList.size() > 0) {
			
			for (int i=0; i < aList.size(); i++) {
				EmpVO _evo = aList.get(i);
				System.out.print(_evo.getEmpno() + " : ");
				System.out.print(_evo.getEname() + " : ");
				System.out.print(_evo.getJob() + " : ");			
				System.out.println(_evo.getMgr());
			}
		}
	}
}

5교시 (14:30-15:20)

  • OracleTest_7_1
package a.b.c.oracle;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.Scanner;

import a.b.c.oracle.vo.EmpVO;

public class OracleTest_7_1 {
	
	// DataSource 정보 : 데이터베이스 연결 정보
	public static final String JDBC_DRIVER = "oracle.jdbc.driver.OracleDriver";
	public static final String JDBC_URL = "jdbc:oracle:thin:@localhost:1521:orclKSY00";
	public static final String JDBC_USER = "scott";
	public static final String JDBC_PASSWORD = "tiger";
	
	public static final short SQLQUERY_1 = 0;
	public static final short SQLQUERY_2 = 1;
	
	// sql Query 
	public static String[] sqlQuery = {
		"SELECT EMPNO, ENAME, JOB, MGR FROM EMP WHERE EMPNO LIKE '%' || ? || '%' ",	
		"SELECT EMPNO, ENAME, JOB, MGR FROM EMP WHERE EMPNO LIKE ? "
	};
	
//	sqlQuery[0], sqlQuery[OracleTest_7_1.SQLQUERY_1]
//	sqlQuery[1], sqlQuery[OracleTest_7_1.SQLQUERY_2]
			
	// 생성자 
	public OracleTest_7_1() {

		try {
			Class.forName(JDBC_DRIVER);
		} catch (Exception e) {
			System.out.println("JDBC 드라이버를 찾지 못했어요 >>> : " + e.getMessage());
		}
	}
	
	public ArrayList<EmpVO> empSelect(EmpVO evo) {
		
		ArrayList<EmpVO> aList = null;
		
		try {
			
			Connection conn = DriverManager.getConnection(JDBC_URL, JDBC_USER, JDBC_PASSWORD);			
			
			PreparedStatement pstmt = conn.prepareStatement(OracleTest_7_1.sqlQuery[OracleTest_7_1.SQLQUERY_1]);
//			PreparedStatement pstmt = conn.prepareStatement(OracleTest_7_1.sqlQuery[0]);
			pstmt.setString(1,  evo.getEmpno());
			
			ResultSet rsRs = pstmt.executeQuery();
			
			if (rsRs !=null) {
				aList = new ArrayList<EmpVO>();
				
				while (rsRs.next()) {
					
					EmpVO _evo = new EmpVO();
					
					_evo.setEmpno(rsRs.getString("EMPNO"));
					_evo.setEname(rsRs.getString("ENAME"));					
					_evo.setJob(rsRs.getString("JOB"));
					_evo.setMgr(rsRs.getString("MGR"));
					
					aList.add(_evo);
				}				
			}
			
		} catch (Exception e) {
			System.out.println(e);
		}
		
		return aList;
	}
	
	public ArrayList<EmpVO> empSelect_1(EmpVO evo) {
		
		ArrayList<EmpVO> aList = null;
		
		try {
			
			Connection conn = DriverManager.getConnection(JDBC_URL, JDBC_USER, JDBC_PASSWORD);			
			
			PreparedStatement pstmt = conn.prepareStatement(OracleTest_7_1.sqlQuery[1]);	
//			PreparedStatement pstmt = conn.prepareStatement(OracleTest_7_1.sqlQuery[OracleTest_7_1.SQLQUERY_2]);			
			pstmt.setString(1,  "%" + evo.getEmpno() + "%");
			
			ResultSet rsRs = pstmt.executeQuery();
			
			if (rsRs !=null) {
				aList = new ArrayList<EmpVO>();
				
				while (rsRs.next()) {
					
					EmpVO _evo = new EmpVO();
					
					_evo.setEmpno(rsRs.getString("EMPNO"));
					_evo.setEname(rsRs.getString("ENAME"));
					_evo.setJob(rsRs.getString("JOB"));
					_evo.setMgr(rsRs.getString("MGR"));
					
					aList.add(_evo);
				}				
			}
			
		}catch(Exception e) {
			System.out.println(e);
		}
		
		return aList;
	}
	
	public static void main(String[] args) {
		// TODO Auto-generated method stub

		OracleTest_7_1 ot71 = new OracleTest_7_1();
		
		Scanner sc0 = null;
		Scanner sc1 = null;
		Scanner sc2 = null;
		
		while (true) {

			System.out.println("검색 방법을 선택 하시오 1:  2:  3: 검색 끝");
			sc0 = new Scanner(System.in);
			int c = sc0.nextInt();
			
			if (c == 3) break;
			
			while(true) {
				
				if (c == 1) {
					System.out.println(c + " 번을 선택 하셨습니다.");
					
					System.out.println("검색할 사원의 사번을 입력하시오 >>> : ");
					sc1 = new Scanner(System.in);
					String empno = sc1.next();
					System.out.println("검색할 사원의 사번 >>> : " + empno);
					
					EmpVO evo = null;
					evo = new EmpVO();
					evo.setEmpno(empno);
					
					ArrayList<EmpVO> aList = ot71.empSelect(evo);
					
					if (aList !=null && aList.size() > 0) {
						
						for (int i=0; i < aList.size(); i++) {
							EmpVO _evo = aList.get(i);
							System.out.print(_evo.getEmpno() + " : ");
							System.out.print(_evo.getEname() + " : ");
							System.out.print(_evo.getJob() + " : ");			
							System.out.println(_evo.getMgr());
						}
					}
					
					break;
				}
				
				if (c == 2) {
					System.out.println(c + " 번을 선택 하셨습니다.");
					
					System.out.println("검색할 사원의 사번을 입력하시오 >>> : ");
					sc2 = new Scanner(System.in);
					String empno = sc2.next();
					System.out.println("검색할 사원의 사번 >>> : " + empno);
					
					EmpVO evo = null;
					evo = new EmpVO();
					evo.setEmpno(empno);
										
					ArrayList<EmpVO> aList = ot71.empSelect_1(evo);
					
					if (aList !=null && aList.size() > 0) {
						
						for (int i=0; i < aList.size(); i++) {
							EmpVO _evo = aList.get(i);
							System.out.print(_evo.getEmpno() + " : ");
							System.out.print(_evo.getEname() + " : ");
							System.out.print(_evo.getJob() + " : ");			
							System.out.println(_evo.getMgr());
						}
					}
					
					break;
				}
			}
		}
		sc2.close();
		sc1.close();
		sc0.close();
	}
}

6교시 (15:30-16:20)

  • EMP 테이블 검색하기
  • EMP 테이블 검색하기
    ------------------------
    1. 전체 검색
    2. 사번 검색
    3. 이름 검색
    4. 직책 검색
    5. 날짜 검색

    화면 - 서비스 - 다오 - sql

    화면
        EmpSearchScr.java
    서비스
        EmpSearchService.java 인터페이스
        EmpSerachSeriveceImpl.java 클래스
    다오
        EmpSerachDAO.java 인터페이스
        EmpSerachDAOImpl.java 클래스
    sql
        EmpSearchQueryMap.java 추상클래스
    vo
        EmpSearchVO.java
    common
        OracleConnProperty.java 추상클래스

    패키지
    a.b.c.emp.search

    클래스
    a.b.c.emp.search.scr
        EmpSearchScr

    a.b.c.emp.search.service
        EmpSearchService
            public ArrayList<EmpVO> empSelectAll();
            public ArrayList<EmpVO> empSelectEmpno(EmpVO evo);
            public ArrayList<EmpVO> empSelectEname(EmpVO evo);
            public ArrayList<EmpVO> empSelectJob(EmpVO evo);
            public ArrayList<EmpVO> empSelectHiredate(EmpVO evo);
        EmpSearchServiceImpl

    a.b.c.emp.search.dao
        EmpSearchDAO
            public ArrayList<EmpVO> empSelectAll();
            public ArrayList<EmpVO> empSelectEmpno(EmpVO evo);
            public ArrayList<EmpVO> empSelectEname(EmpVO evo);
            public ArrayList<EmpVO> empSelectJob(EmpVO evo);
            public ArrayList<EmpVO> empSelectHiredate(EmpVO evo);
        EmpSearchDAOImpl

    a.b.c.emp.search.sql
        EmpSearchQueryMap
            public static String getEmpSelectAll();
            public static String getEmpSelectEmpno();
            public static String getEmpSelectEname();
            public static String getEmpSelectJob();
            public static String getEmpSelectHiredate();

    a.b.c.emp.search.vo
        EmpSearchVO
            private String empno;
            private String ename;
            private String job;
            private String mgr;
            private String hiredate;
            private String sal;
            private String comm;
            private String deptno;
            
            // 날짜 검색 변수 추가
            private String fromdate;
            private String todate;

    공통 클래스
    a.b.c.common
        OracleConnProperty
  • EmpVO
package a.b.c.oracle.vo;

public class EmpVO {
	
	/*
	사원번호		EMPNO		NUMBER
	사원이름		ENAME		VARCHAR2
	사원직책		JOB			VARCHAR2
	상관사원번호	MGR			VARCHAR2
	입사일		HIREDATE	DATE
	급여			SAL			NUMBER
	수당			COMM		NUMBER
	부서번호		DEPTNO		NUMBER
	*/
	
	// 컬럼명 --> 변수명 : 소문자
	// 데이터타입 NUMBER, VARCHAR2, DATE -> 전부 다 문자열로 한다. String
	
	// empno : 멤버 변수, 스트링, 인포메이션 하이딩
	private String empno;
	private String ename;
	private String job;
	private String mgr;
	private String hiredate;
	private String sal;
	private String comm;
	private String deptno;
	
	// 날짜 검색 변수 추가
	private String fromdate;
	private String todate;
	
	// constructor
	public EmpVO() {
		
	}
	
	public EmpVO(	String empno, String ename, 
					String job, String mgr, 
					String hiredate, String sal, 
					String comm, String deptno) {
		this.empno = empno;
		this.ename = ename;
		this.job = job;
		this.mgr = mgr;
		this.hiredate = hiredate;
		this.sal = sal;
		this.comm = comm;
		this.deptno = deptno;
	}
	
	// getter
	public String getEmpno() {
		return empno;
	}
	public String getEname() {
		return ename;
	}
	public String getJob() {
		return job;
	}
	public String getMgr() {
		return mgr;
	}
	public String getHiredate() {
		return hiredate;
	}
	public String getSal() {
		return sal;
	}
	public String getComm() {
		return comm;
	}
	public String getDeptno() {
		return deptno;
	}
	
	// setter
	public void setEmpno(String empno) {
		this.empno = empno;
	}
	public void setEname(String ename) {
		this.ename = ename;
	}
	public void setJob(String job) {
		this.job = job;
	}
	public void setMgr(String mgr) {
		this.mgr = mgr;
	}
	public void setHiredate(String hiredate) {
		this.hiredate = hiredate;
	}
	public void setSal(String sal) {
		this.sal = sal;
	}
	public void setComm(String comm) {
		this.comm = comm;
	}
	public void setDeptno(String deptno) {
		this.deptno = deptno;
	}
	
	// 날짜 검색 관련 getter setter 함수 추가
	public String getFromdate() {
		return fromdate;
	}

	public String getTodate() {
		return todate;
	}

	public void setFromdate(String fromdate) {
		this.fromdate = fromdate;
	}

	public void setTodate(String todate) {
		this.todate = todate;
	}
}

7교시 (16:30-17:20)

  • OracleConnProperty
package a.b.c.common;

import java.sql.Connection;
import java.sql.DriverManager;

public abstract class OracleConnProperty {

	// DataSource 정보 : 데이터베이스 연결 정보
	public static final String JDBC_DRIVER = "oracle.jdbc.driver.OracleDriver";
	public static final String JDBC_URL = "jdbc:oracle:thin:@localhost:1521:orclKSY00";
	public static final String JDBC_USER = "scott";
	public static final String JDBC_PASSWORD = "tiger";

	// Connection 연결하는 함수 만들기
	public static Connection getConnection() {
		
		Connection conn = null;
		
		try {
			Class.forName(JDBC_DRIVER);
			conn = DriverManager.getConnection(JDBC_URL, JDBC_USER, JDBC_PASSWORD);
			
		} catch (Exception e) {
			System.out.println("데이터베이스 연결에 문제가 있어요" + e.getMessage());
		}
	
		return null;
	}
}

8교시 (17:30-18:30)

  • OracleTest_8
package a.b.c.oracle;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.Scanner;

import a.b.c.common.OracleConnProperty;
import a.b.c.oracle.vo.EmpVO;

public class OracleTest_8 {

	// DataSource 정보 : 데이터베이스 연결 정보
	public static final String JDBC_DRIVER		= "oracle.jdbc.driver.OracleDriver";
	public static final String JDBC_URL			= "jdbc:oracle:thin:@localhost:1521:orclKSY00";
	public static final String JDBC_USER		= "scott";
	public static final String JDBC_PASSWORD	= "tiger";
	
	// 생성자
	public OracleTest_8() {
		
		try {
			Class.forName(JDBC_DRIVER);
		} catch (Exception e) {
			System.out.println("JDBC 드라이버를 찾지 못했어요 >>> : " + e.getMessage());
		}
	}
	
	public static String getEmpSelectQuery() {
	
		StringBuffer sb = new StringBuffer();
		sb.append(" SELECT  												\n");
		sb.append(" 	 	 A.EMPNO 			EMPNO  						\n");
		sb.append(" 		,A.ENAME 			ENAME  						\n");
		sb.append(" 		,A.JOB 				JOB  						\n");
		sb.append(" 		,A.MGR 				MGR  						\n");		
		sb.append(" 		,TO_CHAR(A.HIREDATE, 'YYYY-MM-DD') HIREDATE  	\n");
		sb.append(" FROM  													\n");
		sb.append(" 	     EMP A											\n");
		sb.append(" WHERE 	 1=1											\n");
		sb.append(" AND      TO_CHAR(TO_DATE(A.HIREDATE), 'YYYYMMDD') >= TO_CHAR(TO_DATE(?), 'YYYYMMDD') 	\n");
		sb.append(" AND      TO_CHAR(TO_DATE(A.HIREDATE), 'YYYYMMDD') <= TO_CHAR(TO_DATE(?), 'YYYYMMDD') 	\n");
		
		return sb.toString();
	}
	
	public ArrayList<EmpVO> empSelect(EmpVO evo) {
		
		ArrayList<EmpVO> aList = null;
		
		try {
			
			Connection conn = DriverManager.getConnection(JDBC_URL, JDBC_USER, JDBC_PASSWORD);
			
			PreparedStatement pstmt = conn.prepareStatement(OracleTest_8.getEmpSelectQuery());
			pstmt.setString(1, evo.getFromdate());
			pstmt.setString(2, evo.getTodate());
			System.out.println("날짜 검색 쿼리 >>> : \n" + OracleTest_8.getEmpSelectQuery());
			
			ResultSet rsRs = pstmt.executeQuery();
			
			if (rsRs != null) {
				aList = new ArrayList<EmpVO>();
				
				while (rsRs.next()) {
					
					EmpVO _evo = new EmpVO();
					
					_evo.setEmpno(rsRs.getNString("EMPNO"));
					_evo.setEname(rsRs.getNString("ENAME"));
					_evo.setJob(rsRs.getNString("JOB"));
					_evo.setMgr(rsRs.getNString("MGR"));
					_evo.setHiredate(rsRs.getNString("HIREDATE"));
					
					aList.add(_evo);
					
				}
			}
			
		} catch (Exception e) {
			System.out.println(e);
		}
		
		return aList;
	}
	
	public static void main(String[] args) throws ParseException {
		// TODO Auto-generated method stub

		OracleTest_8 ot8 = new OracleTest_8();
		
		System.out.println("검색할 날짜를 입력하시오 >>> : ");
		Scanner sc= new Scanner(System.in);
		String fromdate = sc.next();
		System.out.println("검색할 from 날짜 >>> : " + fromdate);
		String todate = sc.next();
		System.out.println("검색할 to 날짜 >>> : " + todate);
		
		// =======================================================================
		// from date = '1981/02/20'
		SimpleDateFormat sDate = new SimpleDateFormat("yyyy/MM/dd");
		
		// parse() : 문자열을 날짜 데이터로 변환
		// Date fromDate = sDate.parse('1981/02/20');
		Date fromDate = sDate.parse(fromdate);
		Date toDate = sDate.parse(todate);
		
		// 1981/02/20 날짜 데이터.getTime() --> 초로 변환
		long f = fromDate.getTime();
		long t = toDate.getTime();
		
		// fromDate >>> : 351442800000 == 1981/02/20
		System.out.println("fromDate >>> : " + f);
		System.out.println("toDate >>> : " + t);
		
		// =======================================================================
		// 아래 루틴 수정하기
		// from이 to보다 크면 로직이 수행되지 않게 한다.
		boolean bool = f > t;
		System.out.println("FROM 날짜가 TO 날짜보다 크면 안됩니다. >>> : " + bool);
		System.out.println("프로그램을 종료합니다. 다시 실행해서 사용하세요 >>> : ");
		if (bool) return;
		
		// =======================================================================
		
		EmpVO evo = null;
		evo = new EmpVO();
		evo.setFromdate(fromdate);
		evo.setTodate(todate);
		
		ArrayList<EmpVO> aList = ot8.empSelect(evo);
		
		
		if (aList !=null && aList.size() > 0) {
			
			for (int i=0; i < aList.size(); i++) {
				EmpVO _evo = aList.get(i);
				System.out.print(_evo.getEmpno() + " : ");
				System.out.print(_evo.getEname() + " : ");
				System.out.print(_evo.getJob() + " : ");
				System.out.print(_evo.getMgr() + " : ");
				System.out.println(_evo.getHiredate());
			}
		}
	}
}
  • StaticVar
package a.b.c.oracle;

public class StaticVar {

	public static final short SQLQUERY_1 = 0;
	public static final short SQLQUERY_2 = 1;
	
	// sql Query 
	public static String[] sqlQuery = {
		"SELECT EMPNO, ENAME, JOB, MGR FROM EMP WHERE EMPNO LIKE '%' || ? || '%' ",	
		"SELECT EMPNO, ENAME, JOB, MGR FROM EMP WHERE EMPNO LIKE ? "
	};
	
	public void sTest() {
		
		System.out.println("StaticVar.SQLQUERY_1 >>> : " + StaticVar.SQLQUERY_1);
		System.out.println("StaticVar.SQLQUERY_2 >>> : " + StaticVar.SQLQUERY_2);
		
		System.out.println("StaticVar.sqlQuery[0] >>> : " + StaticVar.sqlQuery[0]);
		System.out.println("StaticVar.sqlQuery[1] >>> : " + StaticVar.sqlQuery[1]);
		
		
		System.out.println("StaticVar.sqlQuery[StaticVar.SQLQUERY_1] >>> : " 
								+ StaticVar.sqlQuery[StaticVar.SQLQUERY_1]);
		System.out.println("StaticVar.sqlQuery[StaticVar.SQLQUERY_2] >>> : " 
								+ StaticVar.sqlQuery[StaticVar.SQLQUERY_2]);		
	}
	
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		new StaticVar().sTest();
	}

}

Notes


728x90