728x90
수업내용
1교시 (09:30-10:20)
- 지난 시간 복습
2-tier
----------
서버 & 클라이언트
3-tier
-------------
프레젠테이션 레이어
비즈니스 레이어
데이터베이스 레이어
프리젠테이션 레이어 : 화면, 콘트롤러
비즈니스 레이어 : 서비스, 다오
데이터베이스 레이어 : sql
=======================
화면 - 서비스 - 다오 - sql
=======================
2교시 (10:30-11:20)
- 프로그램 만들기
EMP 테이블 검색하기
------------------------
1. 전체 검색
2. 사번 검색
----------------
3. 이름 검색
4. 사번, 이름 검색
5. 직책 검색
6. 날짜 검색
1. 데이터베이스 문서 만들기
2. 클래스 설계 하기
프로그램 만드는 순서
---------------------
1. 커넥션 클래스 만들기
2. VO 클래스 만들기
3. Service 클래스 만들기
껍데기 먼저 만들기
4. DAO 클래스 만들기
껍데기 먼저 만들기
5. sql 클래스 만들기
껍데기 먼저 만들기
6. 쿼리문 만들기 : SQLDeveloper
쿼리문 완성
7. sql 클래스 완성
8. DAOImpl 클래스
해당하는 전체검색 함수 완성하기
9. ServiceImpl 클래스
DAO에서 함수 호출하기
Service와 DAO 연결하기
-- 데이터를 만든다.
사원번호 EMPNO NUMBER
사원이름 ENAME VARCHAR2
사원직책 JOB VARCHAR2
상관사원번호 MGR VARCHAR2
입사일 HIREDATE DATE
급여 SAL NUMBER
수당 COMM NUMBER
부서번호 DEPTNO NUMBER
변수는 데이터베이스 컬럼명을 소문자로 만든다.
private String empno;
private String ename;
private String job;
private String mgr;
private String hirdate;
private String sal;
private String comm;
private String deptno;
-- 클래스를 구성한다.
화면
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
public ArrayList<EmpSearchVO> empSelectAll();
public ArrayList<EmpSearchVO> empSelectEmpno();
public ArrayList<EmpSearchVO> empSelectEname();
public ArrayList<EmpSearchVO> empSelectEmpnoEname();
public ArrayList<EmpSearchVO> empSelectJob();
public ArrayList<EmpSearchVO> empSelectHiredate();
서비스
a.b.c.emp.search.service
EmpSearchService
public ArrayList<EmpSearchVO> empSelectAll();
public ArrayList<EmpSearchVO> empSelectEmpno(EmpSearchVO evo);
public ArrayList<EmpSearchVO> empSelectEname(EmpSearchVO evo);
public ArrayList<EmpSearchVO> empSelectEmpnoEname(EmpSearchVO evo);
public ArrayList<EmpSearchVO> empSelectJob(EmpSearchVO evo);
public ArrayList<EmpSearchVO> empSelectHiredate(EmpSearchVO evo);
EmpSearchServiceImpl
다오
a.b.c.emp.search.dao
EmpSearchDAO
public ArrayList<EmpSearchVO> empSelectAll();
public ArrayList<EmpSearchVO> empSelectEmpno(EmpSearchVO evo);
public ArrayList<EmpSearchVO> empSelectEname(EmpSearchVO evo);
public ArrayList<EmpSearchVO> empSelectEmpnoEname(EmpSearchVO evo);
public ArrayList<EmpSearchVO> empSelectJob(EmpSearchVO evo);
public ArrayList<EmpSearchVO> empSelectHiredate(EmpSearchVO evo);
EmpSearchDAOImpl
sql
a.b.c.emp.search.sql
EmpSearchQueryMap
public static String getEmpSelectAll();
public static String getEmpSelectEmpno();
public static String getEmpSelectEname();
public static String getEmpSelectEmpnoEname();
public static String getEmpSelectJob();
public static String getEmpSelectHiredate();
vo
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
3교시 (11:30-12:20)
- DAO 패턴 (1번만 구현)
- OracleConnProperty
- EmpSearchVO
- EmpSearchService
- EmpSerachDAO
4교시 (12:30-13:20)
- DAO 패턴 (1번만 구현)
- EmpSearchQueryMap
- EmpSearchServiceImpl
- EmpSearchDAOImpl
- EmpSearchScr
5교시 (14:30-15:20)
- DAO 패턴 (2~6번 구현해보기)
- 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 conn;
}
}
- EmpSearchVO
package a.b.c.emp.search.vo;
// 자바 Beans 컴포넌트 개념(Setter, getter 함수 사용) : 데이터를 담는 역할
// DTO: Data Transfer Object 패턴 : 데이터를 나르는 역할 <-- 이전 용어
// 현재는 밸류 오브젝트라고 사용한다.
// VO : Value Object : 데이터를 담는 통 역할을 한다. : 깡통 클래스
public class 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;
// 생성자
public EmpSearchVO() {
}
public EmpSearchVO(String empno, String ename, String job, String mgr,
String hiredate, String sal, String comm, String deptno,
String fromdate, String todate) {
this.empno = empno;
this.ename = ename;
this.job = job;
this.mgr = mgr;
this.hiredate = hiredate;
this.sal = sal;
this.comm = comm;
this.deptno = deptno;
this.fromdate = fromdate;
this.todate = todate;
}
// getters
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;
}
public String getFromdate() {
return fromdate;
}
public String getTodate() {
return todate;
}
// setters
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;
}
public void setFromdate(String fromdate) {
this.fromdate = fromdate;
}
public void setTodate(String todate) {
this.todate = todate;
}
}
6교시 (15:30-16:20)
- DAO 패턴 (2~6번 구현해보기)
- EmpSearchService
package a.b.c.emp.search.service;
import java.util.ArrayList;
import a.b.c.emp.search.vo.EmpSearchVO;
public interface EmpSearchService {
// 전체 검색
public ArrayList<EmpSearchVO> empSelectAll();
// 사번 검색
public ArrayList<EmpSearchVO> empSelectEmpno(EmpSearchVO evo);
// 이름 검색
public ArrayList<EmpSearchVO> empSelectEname(EmpSearchVO evo);
// 사번, 이름 검색
public ArrayList<EmpSearchVO> empSelectEmpnoEname(EmpSearchVO evo);
// 직책 검색
public ArrayList<EmpSearchVO> empSelectJob(EmpSearchVO evo);
// 날짜 검색
public ArrayList<EmpSearchVO> empSelectHiredate(EmpSearchVO evo);
}
- EmpSerachDAO
package a.b.c.emp.search.dao;
import java.util.ArrayList;
import a.b.c.emp.search.vo.EmpSearchVO;
public interface EmpSearchDAO {
// 전체 검색
public ArrayList<EmpSearchVO> empSelectAll();
// 사번 검색
public ArrayList<EmpSearchVO> empSelectEmpno(EmpSearchVO evo);
// 이름 검색
public ArrayList<EmpSearchVO> empSelectEname(EmpSearchVO evo);
// 사번, 이름 검색
public ArrayList<EmpSearchVO> empSelectEmpnoEname(EmpSearchVO evo);
// 직책 검색
public ArrayList<EmpSearchVO> empSelectJob(EmpSearchVO evo);
// 날짜 검색
public ArrayList<EmpSearchVO> empSelectHiredate(EmpSearchVO evo);
}
7교시 (16:30-17:20)
- DAO 패턴 (2~6번 구현해보기)
- EmpSearchQueryMap
package a.b.c.emp.search.sql;
import java.util.ArrayList;
public abstract class EmpSearchQueryMap {
// 전체 검색
public static String getEmpSelectAll() {
StringBuffer sb = new StringBuffer();
sb.append("SELECT \n");
sb.append(" A.EMPNO AS EMPNO \n");
sb.append(" ,A.ENAME AS ENAME \n");
sb.append(" ,A.JOB AS JOB \n");
sb.append(" ,A.MGR AS MGR \n");
sb.append(" ,TO_CHAR(A.HIREDATE, 'YYYY-MM-DD') AS HIREDATE \n");
sb.append(" ,A.SAL AS SAL \n");
sb.append(" ,A.COMM AS COMM \n");
sb.append(" ,A.DEPTNO AS DEPTNO \n");
sb.append("FROM EMP A \n");
sb.append("ORDER BY 1 DESC \n");
return sb.toString();
}
// 사번 검색
public static String getEmpSelectEmpno() {
StringBuffer sb = new StringBuffer();
sb.append("SELECT \n");
sb.append(" A.EMPNO AS EMPNO \n");
sb.append(" ,A.ENAME AS ENAME \n");
sb.append(" ,A.JOB AS JOB \n");
sb.append(" ,TO_CHAR(A.HIREDATE, 'YYYY-MM-DD') AS HIREDATE \n");
sb.append(" ,A.DEPTNO AS DEPTNO \n");
sb.append("FROM EMP A \n");
sb.append("WHERE A.EMPNO = ? \n"); // place holder 1
return sb.toString();
}
// 이름 검색
public static String getEmpSelectEname() {
StringBuffer sb = new StringBuffer();
sb.append("SELECT \n");
sb.append(" A.EMPNO AS EMPNO \n");
sb.append(" ,A.ENAME AS ENAME \n");
sb.append(" ,A.JOB AS JOB \n");
sb.append(" ,TO_CHAR(A.HIREDATE, 'YYYY-MM-DD') AS HIREDATE \n");
sb.append(" ,A.DEPTNO AS DEPTNO \n");
sb.append("FROM EMP A \n");
sb.append("WHERE A.ENAME = ? \n"); // place holder 1
return sb.toString();
}
// 사번, 이름 검색
public static String getEmpSelectEmpnoEname() {
StringBuffer sb = new StringBuffer();
sb.append("SELECT \n");
sb.append(" A.EMPNO AS EMPNO \n");
sb.append(" ,A.ENAME AS ENAME \n");
sb.append(" ,A.JOB AS JOB \n");
sb.append(" ,TO_CHAR(A.HIREDATE, 'YYYY-MM-DD') AS HIREDATE \n");
sb.append(" ,A.DEPTNO AS DEPTNO \n");
sb.append("FROM EMP A \n");
sb.append("WHERE A.EMPNO = ? \n"); // place holder 1
sb.append("AND A.ENAME = ? \n"); // place holder 2
return sb.toString();
}
// 직책 검색
public static String getEmpSelectJob() {
StringBuffer sb = new StringBuffer();
sb.append("SELECT \n");
sb.append(" A.EMPNO AS EMPNO \n");
sb.append(" ,A.ENAME AS ENAME \n");
sb.append(" ,A.JOB AS JOB \n");
sb.append(" ,TO_CHAR(A.HIREDATE, 'YYYY-MM-DD') AS HIREDATE \n");
sb.append(" ,A.DEPTNO AS DEPTNO \n");
sb.append("FROM EMP A \n");
sb.append("WHERE A.JOB = ? \n"); // place holder 1
return sb.toString();
}
// 날짜 검색
public static String getEmpSelectHiredate() {
StringBuffer sb = new StringBuffer();
sb.append("SELECT \n");
sb.append(" A.EMPNO AS EMPNO \n");
sb.append(" ,A.ENAME AS ENAME \n");
sb.append(" ,A.JOB AS JOB \n");
sb.append(" ,TO_CHAR(A.HIREDATE, 'YYYY-MM-DD') AS HIREDATE \n");
sb.append(" ,A.DEPTNO AS DEPTNO \n");
sb.append("FROM EMP A \n");
sb.append("WHERE A.HIREDATE BETWEEN ? AND ? \n"); // place holder 1, 2
return sb.toString();
}
}
- EmpSearchDAOImpl
package a.b.c.emp.search.dao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import a.b.c.common.OracleConnProperty;
import a.b.c.emp.search.sql.EmpSearchQueryMap;
import a.b.c.emp.search.vo.EmpSearchVO;
public class EmpSearchDAOImpl implements EmpSearchDAO {
// 전체 검색
@Override
public ArrayList<EmpSearchVO> empSelectAll() {
// TODO Auto-generated method stub
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rsRs = null;
ArrayList<EmpSearchVO> aList = null;
EmpSearchVO esvo = null;
try {
// 커넥션 연결
conn = OracleConnProperty.getConnection();
// 쿼리문 전달
// Statement, preparedStatement : 쿼리문의 위치가 다름. 그 다음 메모리
String sql = EmpSearchQueryMap.getEmpSelectAll();
pstmt = conn.prepareStatement(sql);
System.out.println("전체 검색 >>> : \n" + sql);
// 질의결과 받기
rsRs = pstmt.executeQuery();
// 받은 결과를 dao에서 service로 전달하기
/*
1. 질의 결과가 있는지 확인
2. 질의 결과가 있으면 ArrayList 인스턴스 하기
3. 리절트셋에 있는 boolean 커서 next 함수로 레코드 가져오기
4. 가져온 레코드 VO에 담기
5. VO를 ArrayList에 담기
*/
// 1. 질의 결과가 있는지 확인
if (rsRs != null) {
// 2. 질의 결과가 있으면 ArrayList 인스턴스 하기
aList = new ArrayList<EmpSearchVO>();
// 3. 리절트셋에 있는 boolean 커서 next 함수로 레코드 가져오기
while (rsRs.next()) {
// 4. 가져온 레코드 VO에 담기
esvo = new EmpSearchVO();
esvo.setEmpno(rsRs.getString("EMPNO"));
esvo.setEname(rsRs.getString("ENAME"));
esvo.setJob(rsRs.getString("JOB"));
esvo.setMgr(rsRs.getString("MGR"));
esvo.setHiredate(rsRs.getString("HIREDATE"));
esvo.setSal(rsRs.getString("SAL"));
esvo.setComm(rsRs.getString("COMM"));
esvo.setDeptno(rsRs.getString("DEPTNO"));
// 5. VO를 ArrayList에 담기
aList.add(esvo);
}
} else {
System.out.println("EmpSerachDAOImpl :: 전체 검색 결과가 없음 >>> : " + rsRs);
}
} catch (Exception e) {
System.out.println("EmpSerachDAOImpl :: DAO :: 전체 검색 중 에러 >>> : " + e.getMessage());
}
// ArrayList 리턴하기
return aList;
}
// 사번 검색
@Override
public ArrayList<EmpSearchVO> empSelectEmpno(EmpSearchVO evo) {
// TODO Auto-generated method stub
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rsRs = null;
ArrayList<EmpSearchVO> aList = null;
EmpSearchVO esvo = null;
try {
// 커넥션
conn = OracleConnProperty.getConnection();
// 쿼리문 전달
String sql = EmpSearchQueryMap.getEmpSelectEmpno();
pstmt = conn.prepareStatement(sql);
System.out.println("사번 검색 >>> : \n" + sql);
pstmt.clearParameters(); // 매개 변수 받기 전 루틴
pstmt.setString(1, evo.getEmpno());
// 질의 결과 받기
rsRs = pstmt.executeQuery();
// 받은 결과를 dao에서 service로 전달하기
/*
1. 질의 결과가 있는지 확인
2. 질의 결과가 있으면 ArrayList 인스턴스 하기
3. 리절트셋에 있는 boolean 커서 next 함수로 레코드 가져오기
4. 가져온 레코드 VO에 담기
5. VO를 ArrayList에 담기
*/
// 1. 질의 결과가 있는지 확인
if (rsRs != null) {
// 2. 질의 결과가 있으면 ArrayList 인스턴스 하기
aList = new ArrayList<EmpSearchVO>();
// 3. 리절트셋에 있는 boolean 커서 next 함수로 레코드 가져오기
while (rsRs.next()) {
// 4. 가져온 레코드 VO에 담기
esvo = new EmpSearchVO();
esvo.setEmpno(rsRs.getString("EMPNO"));
esvo.setEname(rsRs.getString("ENAME"));
esvo.setJob(rsRs.getString("JOB"));
esvo.setHiredate(rsRs.getString("HIREDATE"));
esvo.setDeptno(rsRs.getString("DEPTNO"));
// 5. VO를 ArrayList에 담기
aList.add(esvo);
}
} else {
System.out.println("EmpSerachDAOImpl :: 사번 검색 결과가 없음 >>> : " + rsRs);
}
} catch (Exception e) {
System.out.println("EmpSerachDAOImpl :: DAO :: 사번 검색 중 에러 >>> : " + e.getMessage());
}
return aList;
}
// 이름 검색
@Override
public ArrayList<EmpSearchVO> empSelectEname(EmpSearchVO evo) {
// TODO Auto-generated method stub
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rsRs = null;
ArrayList<EmpSearchVO> aList = null;
EmpSearchVO esvo = null;
try {
conn = OracleConnProperty.getConnection();
String sql = EmpSearchQueryMap.getEmpSelectEname();
pstmt = conn.prepareStatement(sql);
System.out.println("이름 검색 >>> : \n" + sql);
pstmt.clearParameters();
pstmt.setString(1, evo.getEname());
rsRs = pstmt.executeQuery();
if (rsRs != null ) {
aList = new ArrayList<EmpSearchVO>();
while (rsRs.next()) {
esvo = new EmpSearchVO();
esvo.setEmpno(rsRs.getString("EMPNO"));
esvo.setEname(rsRs.getString("ENAME"));
esvo.setJob(rsRs.getString("JOB"));
esvo.setHiredate(rsRs.getString("HIREDATE"));
esvo.setDeptno(rsRs.getString("DEPTNO"));
aList.add(esvo);
}
} else {
System.out.println("EmpSearchDAOImpl :: 이름 검색 결과가 없음 >>> : " + rsRs);
}
} catch (Exception e) {
System.out.println("EmpSerachDAOImpl :: DAO :: 이름 검색 중 에러 >>> : " + e.getMessage());
}
return aList;
}
// 사번, 이름 검색
@Override
public ArrayList<EmpSearchVO> empSelectEmpnoEname(EmpSearchVO evo) {
// TODO Auto-generated method stub
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rsRs = null;
ArrayList<EmpSearchVO> aList = null;
EmpSearchVO esvo = null;
try {
conn = OracleConnProperty.getConnection();
String sql = EmpSearchQueryMap.getEmpSelectEmpnoEname();
pstmt = conn.prepareStatement(sql);
System.out.println("사번, 이름 검색 >>> : \n" + sql);
pstmt.clearParameters();
pstmt.setString(1, evo.getEmpno());
pstmt.setString(2, evo.getEname());
rsRs = pstmt.executeQuery();
if (rsRs != null ) {
aList = new ArrayList<EmpSearchVO>();
while (rsRs.next()) {
esvo = new EmpSearchVO();
esvo.setEmpno(rsRs.getString("EMPNO"));
esvo.setEname(rsRs.getString("ENAME"));
esvo.setJob(rsRs.getString("JOB"));
esvo.setHiredate(rsRs.getString("HIREDATE"));
esvo.setDeptno(rsRs.getString("DEPTNO"));
aList.add(esvo);
}
} else {
System.out.println("EmpSearchDAOImpl :: 사번, 이름 검색 결과가 없음 >>> : " + rsRs);
}
} catch (Exception e) {
System.out.println("EmpSerachDAOImpl :: DAO :: 사번, 이름 검색 중 에러 >>> : " + e.getMessage());
}
return aList;
}
// 직책 검색
@Override
public ArrayList<EmpSearchVO> empSelectJob(EmpSearchVO evo) {
// TODO Auto-generated method stub
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rsRs = null;
ArrayList<EmpSearchVO> aList = null;
EmpSearchVO esvo = null;
try {
conn = OracleConnProperty.getConnection();
String sql = EmpSearchQueryMap.getEmpSelectJob();
pstmt = conn.prepareStatement(sql);
System.out.println("직책 검색 >>> : \n" + sql);
pstmt.clearParameters();
pstmt.setString(1, evo.getJob());
rsRs = pstmt.executeQuery();
if (rsRs != null ) {
aList = new ArrayList<EmpSearchVO>();
while (rsRs.next()) {
esvo = new EmpSearchVO();
esvo.setEmpno(rsRs.getString("EMPNO"));
esvo.setEname(rsRs.getString("ENAME"));
esvo.setJob(rsRs.getString("JOB"));
esvo.setHiredate(rsRs.getString("HIREDATE"));
esvo.setDeptno(rsRs.getString("DEPTNO"));
aList.add(esvo);
}
} else {
System.out.println("EmpSearchDAOImpl :: 직책 검색 결과가 없음 >>> : " + rsRs);
}
} catch (Exception e) {
System.out.println("EmpSerachDAOImpl :: DAO :: 직책 검색 중 에러 >>> : " + e.getMessage());
}
return aList;
}
// 날짜 검색
@Override
public ArrayList<EmpSearchVO> empSelectHiredate(EmpSearchVO evo) {
// TODO Auto-generated method stub
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rsRs = null;
ArrayList<EmpSearchVO> aList = null;
EmpSearchVO esvo = null;
try {
conn = OracleConnProperty.getConnection();
String sql = EmpSearchQueryMap.getEmpSelectHiredate();
pstmt = conn.prepareStatement(sql);
System.out.println("날짜 검색 >>> : \n" + sql);
pstmt.clearParameters();
pstmt.setString(1, evo.getFromdate());
pstmt.setString(2, evo.getTodate());
// System.out.println("evo.getFromdate() >>> : " + evo.getFromdate());
// System.out.println("evo.getTodate() >>> : " + evo.getTodate());
rsRs = pstmt.executeQuery();
if (rsRs != null ) {
aList = new ArrayList<EmpSearchVO>();
while (rsRs.next()) {
esvo = new EmpSearchVO();
esvo.setEmpno(rsRs.getString("EMPNO"));
esvo.setEname(rsRs.getString("ENAME"));
esvo.setJob(rsRs.getString("JOB"));
esvo.setHiredate(rsRs.getString("HIREDATE"));
esvo.setDeptno(rsRs.getString("DEPTNO"));
aList.add(esvo);
}
} else {
System.out.println("EmpSearchDAOImpl :: 날짜 검색 결과가 없음 >>> : " + rsRs);
}
} catch (Exception e) {
System.out.println("EmpSerachDAOImpl :: DAO :: 날짜 검색 중 에러 >>> : " + e.getMessage());
}
return aList;
}
}
8교시 (17:30-18:30)
- DAO 패턴 (2~6번 구현해보기)
- EmpSearchServiceImpl
package a.b.c.emp.search.service;
import java.util.ArrayList;
import a.b.c.emp.search.dao.EmpSearchDAO;
import a.b.c.emp.search.dao.EmpSearchDAOImpl;
import a.b.c.emp.search.vo.EmpSearchVO;
public class EmpSearchServiceImpl implements EmpSearchService {
// 어노테이션
@Override
public ArrayList<EmpSearchVO> empSelectAll() {
// TODO Auto-generated method stub
// EmpSearchDAO esdao = new EmpSearchDAOImpl();
// ArrayList<EmpSearchVO> aList = esdao.empSelectAll();
//
// return aList;
EmpSearchDAO esdao = new EmpSearchDAOImpl();
return esdao.empSelectAll();
}
@Override
public ArrayList<EmpSearchVO> empSelectEmpno(EmpSearchVO evo) {
// TODO Auto-generated method stub
EmpSearchDAO esdao = new EmpSearchDAOImpl();
ArrayList<EmpSearchVO> aList = esdao.empSelectEmpno(evo);
return aList;
}
@Override
public ArrayList<EmpSearchVO> empSelectEname(EmpSearchVO evo) {
// TODO Auto-generated method stub
EmpSearchDAO esdao = new EmpSearchDAOImpl();
ArrayList<EmpSearchVO> aList = esdao.empSelectEname(evo);
return aList;
}
@Override
public ArrayList<EmpSearchVO> empSelectEmpnoEname(EmpSearchVO evo) {
// TODO Auto-generated method stub
EmpSearchDAO esdao = new EmpSearchDAOImpl();
ArrayList<EmpSearchVO> aList = esdao.empSelectEmpnoEname(evo);
return aList;
}
@Override
public ArrayList<EmpSearchVO> empSelectJob(EmpSearchVO evo) {
// TODO Auto-generated method stub
EmpSearchDAO esdao = new EmpSearchDAOImpl();
ArrayList<EmpSearchVO> aList = esdao.empSelectJob(evo);
return aList;
}
@Override
public ArrayList<EmpSearchVO> empSelectHiredate(EmpSearchVO evo) {
// TODO Auto-generated method stub
EmpSearchDAO esdao = new EmpSearchDAOImpl();
ArrayList<EmpSearchVO> aList = esdao.empSelectHiredate(evo);
return aList;
}
}
- EmpSearchScr
package a.b.c.emp.search.scr;
import java.util.ArrayList;
import java.util.Scanner;
import a.b.c.emp.search.service.EmpSearchService;
import a.b.c.emp.search.service.EmpSearchServiceImpl;
import a.b.c.emp.search.vo.EmpSearchVO;
public class EmpSearchScr {
// 화면과 서비스를 이어주는 함수들 <-- 콘트롤러
// 전체 검색
public ArrayList<EmpSearchVO> empSelectAll() {
System.out.println("EmpSearchScr.empSelectAll() 함수 시작 >>> : ");
EmpSearchService es = new EmpSearchServiceImpl();
ArrayList<EmpSearchVO> aList = es.empSelectAll();
return aList;
}
// 사번 검색
public ArrayList<EmpSearchVO> empSelectEmpno(String empno) {
System.out.println("EmpSearchScr.empSelectEmpno() 함수 시작 >>> : ");
EmpSearchService es = new EmpSearchServiceImpl();
// VO에 검색 키워드 사번을 세팅한다.
EmpSearchVO evo = null;
evo = new EmpSearchVO();
evo.setEmpno(empno);
ArrayList<EmpSearchVO> aList = es.empSelectEmpno(evo);
return aList;
}
// 이름 검색
public ArrayList<EmpSearchVO> empSelectEname(String ename) {
System.out.println("EmpSearchScr.empSelectEname() 함수 시작 >>> : ");
EmpSearchService es = new EmpSearchServiceImpl();
EmpSearchVO evo = null;
evo = new EmpSearchVO();
evo.setEname(ename);
ArrayList<EmpSearchVO> aList = es.empSelectEname(evo);
return aList;
}
// 사번, 이름 검색
public ArrayList<EmpSearchVO> empSelectEmpnoEname(String empno, String ename) {
System.out.println("EmpSearchScr.empSelectEmpnoEname() 함수 시작 >>> : ");
EmpSearchService es = new EmpSearchServiceImpl();
EmpSearchVO evo = null;
evo = new EmpSearchVO();
evo.setEmpno(empno);
evo.setEname(ename);
ArrayList<EmpSearchVO> aList = es.empSelectEmpnoEname(evo);
return aList;
}
// 직책 검색
public ArrayList<EmpSearchVO> empSelectJob(String job) {
System.out.println("EmpSearchScr.empSelectJob() 함수 시작 >>> : ");
EmpSearchService es = new EmpSearchServiceImpl();
EmpSearchVO evo = null;
evo = new EmpSearchVO();
evo.setJob(job);
ArrayList<EmpSearchVO> aList = es.empSelectJob(evo);
return aList;
}
// 날짜 검색
public ArrayList<EmpSearchVO> empSelectHiredate(String fromdate, String todate) {
System.out.println("EmpSearchScr.6empSelectHiredate() 함수 시작 >>> : ");
EmpSearchService es = new EmpSearchServiceImpl();
EmpSearchVO evo = null;
evo = new EmpSearchVO();
evo.setFromdate(fromdate);
evo.setTodate(todate);
ArrayList<EmpSearchVO> aList = es.empSelectHiredate(evo);
return aList;
}
// 메인 함수가 화면 역할을 한다.
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("EmpSearchScr.main() 함수 시작 >>> : ");
System.out.println("검색한 번호는 \n"
+ "1. 전체검색 \n"
+ "2. 사번 검색 \n"
+ "3. 이름 검색 \n"
+ "4. 사번, 이름 검색 \n"
+ "5. 직책 검색 \n"
+ "6. 날짜 검색 \n");
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
if (1 == n) {
System.out.println(n + " 전체 검색을 선택 했습니다 >>> : ");
EmpSearchScr ess = new EmpSearchScr();
ArrayList<EmpSearchVO> aList = ess.empSelectAll();
if (aList !=null && aList.size() > 0) {
for (int i=0; i < aList.size(); i++) {
EmpSearchVO esvo = aList.get(i);
System.out.print(esvo.getEmpno() + " : ");
System.out.print(esvo.getEname() + " : ");
System.out.print(esvo.getJob() + " : ");
System.out.print(esvo.getMgr() + " : ");
System.out.print(esvo.getHiredate() + " : ");
System.out.print(esvo.getSal() + " : ");
System.out.print(esvo.getComm() + " : ");
System.out.println(esvo.getDeptno());
}
}
}
if (2 == n) {
System.out.println(n + " 사번 검색을 선택 했습니다 >>> : ");
Scanner sc2 = new Scanner(System.in);
String empno = sc2.next();
EmpSearchScr es2 = new EmpSearchScr();
ArrayList<EmpSearchVO> aList = es2.empSelectEmpno(empno);
if (aList !=null && aList.size() > 0) {
for (int i=0; i < aList.size(); i++) {
EmpSearchVO esvo = aList.get(i);
System.out.print(esvo.getEmpno() + " : ");
System.out.print(esvo.getEname() + " : ");
System.out.print(esvo.getJob() + " : ");
System.out.print(esvo.getHiredate() + " : ");
System.out.println(esvo.getDeptno());
}
}
sc2.close();
}
if (3 == n) {
System.out.println(n + " 이름 검색을 선택 했습니다 >>> : ");
Scanner sc3 = new Scanner(System.in);
String ename = sc3.next();
EmpSearchScr es3 = new EmpSearchScr();
ArrayList<EmpSearchVO> aList = es3.empSelectEname(ename);
if (aList !=null && aList.size() > 0) {
for (int i=0; i < aList.size(); i++) {
EmpSearchVO esvo = aList.get(i);
System.out.print(esvo.getEmpno() + " : ");
System.out.print(esvo.getEname() + " : ");
System.out.print(esvo.getJob() + " : ");
System.out.print(esvo.getHiredate() + " : ");
System.out.println(esvo.getDeptno());
}
}
sc3.close();
}
if (4 == n) {
System.out.println(n + " 사번, 이름 검색을 선택 했습니다 >>> : ");
Scanner sc4 = new Scanner(System.in);
String empno = sc4.next();
String ename = sc4.next();
EmpSearchScr es4 = new EmpSearchScr();
ArrayList<EmpSearchVO> aList = es4.empSelectEmpnoEname(empno, ename);
if (aList !=null && aList.size() > 0) {
for (int i=0; i < aList.size(); i++) {
EmpSearchVO esvo = aList.get(i);
System.out.print(esvo.getEmpno() + " : ");
System.out.print(esvo.getEname() + " : ");
System.out.print(esvo.getJob() + " : ");
System.out.print(esvo.getHiredate() + " : ");
System.out.println(esvo.getDeptno());
}
}
sc4.close();
}
if (5 == n) {
System.out.println(n + " 직책 검색을 선택 했습니다 >>> : ");
Scanner sc5 = new Scanner(System.in);
String job = sc5.next();
EmpSearchScr es5 = new EmpSearchScr();
ArrayList<EmpSearchVO> aList = es5.empSelectJob(job);
if (aList !=null && aList.size() > 0) {
for (int i=0; i < aList.size(); i++) {
EmpSearchVO esvo = aList.get(i);
System.out.print(esvo.getEmpno() + " : ");
System.out.print(esvo.getEname() + " : ");
System.out.print(esvo.getJob() + " : ");
System.out.print(esvo.getHiredate() + " : ");
System.out.println(esvo.getDeptno());
}
}
sc5.close();
}
if (6 == n) {
System.out.println(n + " 날짜 검색을 선택 했습니다 >>> : ");
Scanner sc6 = new Scanner(System.in);
String fromdate = sc6.next();
String todate = sc6.next();
// System.out.println("fromdate >>> : " + fromdate);
// System.out.println("todate >>> : " + todate);
EmpSearchScr es5 = new EmpSearchScr();
ArrayList<EmpSearchVO> aList = es5.empSelectHiredate(fromdate, todate);
if (aList !=null && aList.size() > 0) {
for (int i=0; i < aList.size(); i++) {
EmpSearchVO esvo = aList.get(i);
System.out.print(esvo.getEmpno() + " : ");
System.out.print(esvo.getEname() + " : ");
System.out.print(esvo.getJob() + " : ");
System.out.print(esvo.getHiredate() + " : ");
System.out.println(esvo.getDeptno());
}
}
sc6.close();
}
sc.close();
}
}
Notes
728x90