728x90
수업내용
1교시 (09:30-10:20)
- RANK SUBQUERY
-- 급여의 순위
SELECT DEPTNO, EMPNO, ENAME, SAL FROM EMP;
SELECT DEPTNO, EMPNO, ENAME, SAL
FROM EMP
ORDER BY SAL DESC;
-- RANK : 중복 순위 다음 순서 건너 뜀 (1, 2, 2, 4)
-- DENSE_RANK : 중복 순위 다음 순위 연속 (1, 2, 2, 3)
-- ROW_NUMBER : 중복 순위 없이 유일값 (1, 2, 3, 4)
SELECT DEPTNO, EMPNO, ENAME, SAL
,RANK() OVER (ORDER BY SAL DESC) AS RK
,DENSE_RANK() OVER (ORDER BY SAL DESC) AS DR
,ROW_NUMBER() OVER(ORDER BY SAL DESC) AS RN
FROM EMP
ORDER BY SAL DESC;
2교시 (10:30-11:20)
- RANK SUBQUERY
/*
OVER() 함수
GROUP BY나 서브쿼리를 사용하지 않고
SUM, AVG, MAX, MIN, COUNT(분석 함수)와
GROUP BY, ORDER BY(집계 함수) 사용 시 쿼리 길이를 줄임
분석_함수() OVER(PARTITION BY 컬럼 / ORDER BY 컬럼 / 세부 분할 기준)
여기서 분석 함수와 OVER()는 필수지만
OVER 안의 내용들은 필요할 경우에만 작성해주면 된다.
RANK, DENSE_RANK는 ORDER BY 필수
*/
-- 그룹 별로 순위 부여
SELECT DEPTNO, EMPNO, ENAME, SAL,
RANK() OVER(PARTITION BY DEPTNO ORDER BY SAL DESC) AS RK
FROM EMP;
-- ROW_NUMBER() OVER()
SELECT ROWNUM, EMPNO, ENAME, SAL,
ROW_NUMBER() OVER(ORDER BY SAL DESC) AS RK
FROM EMP;
- PAGING 방법에 대한 설명 ← 내일 구현해볼 예정
- ConnProperty.java
- BoardTestData.java
3교시 (11:30-12:20)
- 어제 Spring + Mybatis review
- DAO를 쓰면 Java 문법, mapper를 쓰면 Mybatis 문법
- 8개의 xml 중 Configuration과 query xml만 다루면 됨
4교시 (12:30-13:20)
Spring + Mybatis Insert (입력) 기능 구현
- SpringEmpService.java
package a.b.c.com.emp.service;
import a.b.c.com.emp.vo.SpringEmpVO;
public interface SpringEmpService {
public int springEmpInsert(SpringEmpVO evo);
}
- SpringEmpServiceImpl.java
package a.b.c.com.emp.service;
import org.apache.log4j.LogManager;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import a.b.c.com.emp.dao.SpringEmpDAO;
import a.b.c.com.emp.vo.SpringEmpVO;
@Service
@Transactional
public class SpringEmpServiceImpl implements SpringEmpService {
Logger logger = LogManager.getLogger(SpringEmpServiceImpl.class);
// 서비스에서 DAO 연결하기
private SpringEmpDAO springEmpDAO;
// 생성자에 @Autowired 어노테이션으로 DI (의존성 주입하기)
@Autowired(required=false)
public SpringEmpServiceImpl(SpringEmpDAO springEmpDAO){
this.springEmpDAO = springEmpDAO;
}
@Override
public int springEmpInsert(SpringEmpVO evo) {
// TODO Auto-generated method stub
logger.info("SpringEmpServiceImpl springEmpInsert 함수 진입 >>> : ");
return springEmpDAO.springEmpInsert(evo);
}
}
- SpringEmpController.java
package a.b.c.com.emp.controller;
import org.apache.log4j.LogManager;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import a.b.c.com.emp.service.SpringEmpService;
import a.b.c.com.emp.vo.SpringEmpVO;
@Controller
public class SpringEmpController {
Logger logger = LogManager.getLogger(SpringEmpController.class);
// 컨트롤러에서 서비스 연결
private SpringEmpService springEmpService;
// 생성자에 @Autowired 어노테이션으로 DI (의존성 주입하기)
@Autowired(required=false)
public SpringEmpController(SpringEmpService springEmpService) {
this.springEmpService = springEmpService;
}
// 입력 폼 호출하기
@RequestMapping(value="springEmpInsertForm", method=RequestMethod.GET)
public String springEmpInsertForm(Model model) {
logger.info("SpringEmpController springEmpInsertForm 함수 진입 >>> : ");
return "emp/springEmpInsertForm";
}
@RequestMapping(value="springEmpInsert", method=RequestMethod.GET)
public String springEmpInsert(SpringEmpVO evo, Model model) {
logger.info("SpringEmpController springEmpInsert 함수 진입 >>> : ");
logger.info("SpringEmpController evo.getEmpno() >>> : " + evo.getEmpno());
logger.info("SpringEmpController evo.getEname() >>> : " + evo.getEname());
logger.info("SpringEmpController evo.getHiredate() >>> : " + evo.getHiredate());
int insertCnt = springEmpService.springEmpInsert(evo);
if (insertCnt > 0) {
logger.info("SpringEmpController springEmpInsert nCnt >>> : " + insertCnt);
model.addAttribute("insertCnt", insertCnt);
return "emp/springEmpInsert";
}
return "emp/springEmpForm";
}
}
5교시 (14:30-15:20)
Spring + Mybatis Insert (입력) 기능 구현
- springEmpInsert.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h3>springEmpInsert.jsp</h3>
<hr>
</body>
</html>
- springEmpInsertForm.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>springEmpInsertForm</title>
<script src="http://code.jquery.com/jquery-latest.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$(document).on("click", "#insertBtn", function(){
console.log("insertBtn >>> : ");
$('#springEmpInsert').attr({
'action':'springEmpInsert.k',
'method':'GET',
'enctype':'application/x-www-form-urlencoded'
}).submit();
});
});
</script>
</head>
<body>
<h3>springEmpInsertForm.jsp</h3>
<hr>
<form name="springEmpInsert" id="springEmpInsert">
<table border="1" class="align">
<tr>
<td colspan="2" class="align">EMP 입력</td>
</tr>
<tr>
<td class="align">사원번호</td>
<td><input type="text" name="empno" id="empno" size="20"></td>
</tr>
<tr>
<td class="align">사원이름</td>
<td><input type="text" name="ename" id="ename" size="20"></td>
</tr>
<tr>
<td class="align">입사일</td>
<td><input type="text" name="hiredate" id="hiredate" size="20"></td>
</tr>
<tr>
<td colspan="2" class="align">
<input type="button" value="EMP_입력" id="insertBtn">
</td>
</tr>
</table>
</form>
</body>
</html>
- index.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h3>Spring Framework + Mybatis Framework</h3>
<hr>
<a href="springEmpInsertForm.k">springEmp 입력 테스트</a><br>
</body>
</html>
6교시 (15:30-16:20)
Spring + Mybatis selectAll (전체 조회), select (조건 조회), update (수정) 기능 구현
- SpringEmpVO.java
package a.b.c.com.emp.vo;
public class SpringEmpVO {
private String empno;
private String ename;
private String hiredate;
// search 변수
private String keyword; // 검색어
private String searchFilter; // 검색조건
private String startDate; // 검색기간 시작일
private String endDate; // 검색기간 종료일
// 생성자
public SpringEmpVO() {
}
public SpringEmpVO(String empno, String ename, String hiredate) {
this.empno = empno;
this.ename = ename;
this.hiredate = hiredate;
}
public SpringEmpVO(String empno, String ename, String hiredate, String keyword, String searchFilter,
String startDate, String endDate) {
super();
this.empno = empno;
this.ename = ename;
this.hiredate = hiredate;
this.keyword = keyword;
this.searchFilter = searchFilter;
this.startDate = startDate;
this.endDate = endDate;
}
// setters/getters
public String getEmpno() {
return empno;
}
public void setEmpno(String empno) {
this.empno = empno;
}
public String getEname() {
return ename;
}
public void setEname(String ename) {
this.ename = ename;
}
public String getHiredate() {
return hiredate;
}
public void setHiredate(String hiredate) {
this.hiredate = hiredate;
}
// search 변수
public String getKeyword() {
return keyword;
}
public void setKeyword(String keyword) {
this.keyword = keyword;
}
public String getSearchFilter() {
return searchFilter;
}
public void setSearchFilter(String searchFilter) {
this.searchFilter = searchFilter;
}
public String getStartDate() {
return startDate;
}
public void setStartDate(String startDate) {
this.startDate = startDate;
}
public String getEndDate() {
return endDate;
}
public void setEndDate(String endDate) {
this.endDate = endDate;
}
}
- SpringEmpDAO.java
package a.b.c.com.emp.dao;
import java.util.List;
import a.b.c.com.emp.vo.SpringEmpVO;
public interface SpringEmpDAO {
public int springEmpInsert(SpringEmpVO evo);
public List springEmpSelectAll();
public List springEmpSelect(SpringEmpVO evo);
public int springEmpUpdate(SpringEmpVO evo);
}
- spring_emp.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="a.b.c.com.emp.dao.SpringEmpDAO">
<insert id="springEmpInsert" parameterType="springempvo" >
INSERT INTO EMP_SPRING (EMPNO, ENAME, HIREDATE)
VALUES ( #{empno, jdbcType=VARCHAR}
,#{ename, jdbcType=VARCHAR}
,#{hiredate, jdbcType=VARCHAR})
</insert>
<select id="springEmpSelectAll" resultType="springempvo">
SELECT A.EMPNO EMPNO
,A.ENAME ENAME
,TO_CHAR(TO_DATE(A.HIREDATE), 'YYYY-MM-DD') HIREDATE
FROM EMP_SPRING A
</select>
<select id="springEmpSelect" parameterType="springempvo" resultType="springempvo">
SELECT
A.EMPNO EMPNO
,A.ENAME ENAME
,TO_CHAR(TO_DATE(A.HIREDATE), 'YYYY-MM-DD') HIREDATE
FROM EMP_SPRING A
WHERE 1=1
<if test="searchFilter=='key_01'">
<![CDATA[ AND A.EMPNO LIKE '%' || #{keyword, jdbcType=VARCHAR} || '%']]>
</if>
<if test="searchFilter=='key_02'">
<![CDATA[ AND A.ENAME LIKE '%' || #{keyword, jdbcType=VARCHAR} || '%']]>
</if>
<if test="startDate!=null and startDate!='' and endDate!=null and endDate!='' ">
<![CDATA[ AND TO_CHAR(TO_DATE(A.HIREDATE), 'YYYY-MM-DD')
>= TO_CHAR(TO_DATE(#{startDate, jdbcType=VARCHAR}), 'YYYY-MM-DD')]]>
<![CDATA[ AND TO_CHAR(TO_DATE(A.HIREDATE), 'YYYY-MM-DD')
<= TO_CHAR(TO_DATE(#{endDate, jdbcType=VARCHAR}), 'YYYY-MM-DD')]]>
</if>
</select>
<update id="springEmpUpdate" parameterType="springempvo">
UPDATE EMP_SPRING SET ENAME=#{ename, jdbcType=VARCHAR}, HIREDATE=#{hiredate, jdbcType=VARCHAR}
WHERE EMPNO = #{empno, jdbcType=VARCHAR}
</update>
</mapper>
- SpringEmpDAOImpl.java
package a.b.c.com.emp.dao;
import java.util.List;
import org.apache.ibatis.session.SqlSession;
import org.apache.log4j.LogManager;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
import a.b.c.com.emp.vo.SpringEmpVO;
@Repository
public class SpringEmpDAOImpl implements SpringEmpDAO {
Logger logger = LogManager.getLogger(SpringEmpDAOImpl.class);
@Autowired(required=false)
private SqlSession sqlSession;
@Override
public int springEmpInsert(SpringEmpVO evo) {
// TODO Auto-generated method stub
logger.info("SpringEmpDAOImpl springEmpInsert 함수 진입 >>> : ");
return (Integer)sqlSession.insert("springEmpInsert", evo);
}
@Override
public List springEmpSelectAll() {
// TODO Auto-generated method stub
logger.info("SpringEmpDAOImpl springEmpSelectAll 함수 진입 >>> : ");
return sqlSession.selectList("springEmpSelectAll");
}
@Override
public List springEmpSelect(SpringEmpVO evo) {
// TODO Auto-generated method stub
logger.info("SpringEmpDAOImpl springempSelect 함수 진입 >>> : ");
return sqlSession.selectList("springEmpSelect", evo);
}
@Override
public int springEmpUpdate(SpringEmpVO evo) {
// TODO Auto-generated method stub
logger.info("SpringEmpDAOImpl springEmpUpdate 함수 진입 >>> : ");
return (Integer)sqlSession.update("springEmpUpdate", evo);
}
}
- SpringEmpService.java
package a.b.c.com.emp.service;
import java.util.List;
import a.b.c.com.emp.vo.SpringEmpVO;
public interface SpringEmpService {
public int springEmpInsert(SpringEmpVO evo);
public List springEmpSelectAll();
public List springEmpSelect(SpringEmpVO evo);
public int springEmpUpdate(SpringEmpVO evo);
}
- SpringEmpServiceImpl.java
package a.b.c.com.emp.service;
import java.util.List;
import org.apache.log4j.LogManager;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import a.b.c.com.emp.dao.SpringEmpDAO;
import a.b.c.com.emp.vo.SpringEmpVO;
@Service
@Transactional
public class SpringEmpServiceImpl implements SpringEmpService {
Logger logger = LogManager.getLogger(SpringEmpServiceImpl.class);
// 서비스에서 DAO 연결하기
private SpringEmpDAO springEmpDAO;
// 생성자에 @Autowired 어노테이션으로 DI (의존성 주입하기)
@Autowired(required=false)
public SpringEmpServiceImpl(SpringEmpDAO springEmpDAO){
this.springEmpDAO = springEmpDAO;
}
@Override
public int springEmpInsert(SpringEmpVO evo) {
// TODO Auto-generated method stub
logger.info("SpringEmpServiceImpl springEmpInsert 함수 진입 >>> : ");
return springEmpDAO.springEmpInsert(evo);
}
@Override
public List springEmpSelectAll() {
// TODO Auto-generated method stub
logger.info("SpringEmpServiceImpl springEmpSelectAll 함수 진입 >>> : ");
return springEmpDAO.springEmpSelectAll();
}
@Override
public List springEmpSelect(SpringEmpVO evo) {
// TODO Auto-generated method stub
logger.info("SpringEmpServiceImpl springEmpSelect 함수 진입 >>> : ");
return springEmpDAO.springEmpSelect(evo);
}
@Override
public int springEmpUpdate(SpringEmpVO evo) {
// TODO Auto-generated method stub
logger.info("SpringEmpServiceImpl springEmpUpdate 함수 진입 >>> : ");
return springEmpDAO.springEmpUpdate(evo);
}
}
7교시 (16:30-17:20)
Spring + Mybatis selectAll (전체 조회), select (조건 조회), update (수정) 기능 구현
- SpringEmpController.java
package a.b.c.com.emp.controller;
import java.util.List;
import org.apache.log4j.LogManager;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import a.b.c.com.emp.service.SpringEmpService;
import a.b.c.com.emp.vo.SpringEmpVO;
@Controller
public class SpringEmpController {
Logger logger = LogManager.getLogger(SpringEmpController.class);
// 컨트롤러에서 서비스 연결
private SpringEmpService springEmpService;
// 생성자에 @Autowired 어노테이션으로 DI (의존성 주입하기)
@Autowired(required=false)
public SpringEmpController(SpringEmpService springEmpService) {
this.springEmpService = springEmpService;
}
// 입력 폼 호출하기
@RequestMapping(value="springEmpInsertForm", method=RequestMethod.GET)
public String springEmpInsertForm(Model model) {
logger.info("SpringEmpController springEmpInsertForm 함수 진입 >>> : ");
return "emp/springEmpInsertForm";
}
@RequestMapping(value="springEmpInsert", method=RequestMethod.GET)
public String springEmpInsert(SpringEmpVO evo, Model model) {
logger.info("SpringEmpController springEmpInsert 함수 진입 >>> : ");
logger.info("SpringEmpController evo.getEmpno() >>> : " + evo.getEmpno());
logger.info("SpringEmpController evo.getEname() >>> : " + evo.getEname());
logger.info("SpringEmpController evo.getHiredate() >>> : " + evo.getHiredate());
int insertCnt = springEmpService.springEmpInsert(evo);
if (insertCnt > 0) {
logger.info("SpringEmpController springEmpInsert nCnt >>> : " + insertCnt);
model.addAttribute("insertCnt", insertCnt);
return "emp/springEmpInsert";
}
return "emp/springEmpForm";
}
@RequestMapping(value="springEmpSelectAll", method=RequestMethod.GET)
public String springEmpSelectAll(Model model) {
logger.info("SpringEmpController springEmpSelectAll() 함수 진입 >>> : ");
List<SpringEmpVO> listAll = springEmpService.springEmpSelectAll();
int nCnt = listAll.size();
logger.info("SpringEmpController springEmpSelectAll nCnt >>> : " + nCnt);
if (nCnt > 0) {
model.addAttribute("listAll", listAll);
return "emp/springEmpSelectAll";
}
return "emp/springEmpForm";
}
@RequestMapping(value="springEmpSelectForm", method=RequestMethod.GET)
public String springEmpSelectForm(@ModelAttribute SpringEmpVO evo, Model model) {
logger.info("SpringEmpController springEmpSelectForm 함수 진입 >>> : ");
return "emp/springEmpSelectForm";
}
@RequestMapping(value="springEmpSelect", method=RequestMethod.GET)
public String springEmpSelect(@ModelAttribute SpringEmpVO evo, Model model) {
logger.info("SpringEmpController springEmpSelect 함수 진입 >>> : ");
logger.info("SpringEmpController evo.getSearchFilter() >>> : " + evo.getSearchFilter());
logger.info("SpringEmpController evo.getKeyword() >>> : " + evo.getKeyword());
logger.info("SpringEmpController evo.getStartDate() >>> : " + evo.getStartDate());
logger.info("SpringEmpController evo.getEndDate() >>> : " + evo.getEndDate());
List<SpringEmpVO> searchList = springEmpService.springEmpSelect(evo);
int nCnt = searchList.size();
logger.info("SpringEmpController springEmpSelect nCnt >>> : " + nCnt);
if (nCnt > 0) {
model.addAttribute("searchList", searchList);
return "emp/springEmpSelect";
}
return "emp/springEmpForm";
}
@RequestMapping(value="springEmpUpdateForm", method=RequestMethod.GET)
public String springEmpUpdateForm(Model model) {
logger.info("SpringEmpController springEmpUpdateForm 함수 진입 >>> : ");
return "emp/springEmpUpdateForm";
}
@RequestMapping(value="springEmpUpdate", method=RequestMethod.GET)
public String springEmpUpdate(@ModelAttribute SpringEmpVO evo, Model model) {
logger.info("SpringEmpController springEmpUpdate 함수 진입 >>> : ");
logger.info("SpringEmpController evo.getEmpno() >>> : " + evo.getEmpno());
logger.info("SpringEmpController evo.getEname() >>> : " + evo.getEname());
logger.info("SpringEmpController evo.getHiredate() >>> : " + evo.getHiredate());
int updateCnt = springEmpService.springEmpUpdate(evo);
if (updateCnt > 0) {
logger.info("SpringEmpController springEmpUpdate nCnt >>> : " + updateCnt);
model.addAttribute("updateCnt", updateCnt);
return "emp/springEmpUpdate";
}
return "emp/springEmpForm";
}
}
- springEmpSelectForm.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<!--
<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
-->
<link rel="stylesheet" href="/empSpring/calendar_datepicker/jquery-ui-1.12.1/jquery-ui.min.css">
<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
<script src="/empSpring/calendar_datepicker/jquery-ui-1.12.1/jquery-ui.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
alert(">>>");
$("#search_btn").click(function(){
alert("검색 버튼 클릭! >>> 전체 조회 조건 검색 콘트롤러로 이동");
$("#empSearchForm").attr({
"action":"springEmpSelect.k",
"method":"GET"
}).submit();
});
$("#startDate").datepicker({
showOn: "button",
buttonImage: "/empSpring/calendar_datepicker/images/calendar.gif",
dateFormat: 'yy-mm-dd',
buttonImageOnly: false,
buttonText: "Select date"
});
$("#endDate").datepicker({
showOn: "button",
buttonImage: "/empSpring/calendar_datepicker/images/calendar.gif",
dateFormat: 'yy-mm-dd',
buttonImageOnly: false,
buttonText: "Select date"
/*
showOn: "both", // 버튼과 텍스트 필드 모두 캘린더를 보여준다.
buttonImage: "/application/db/jquery/images/calendar.gif", // 버튼 이미지
buttonImageOnly: true, // 버튼에 있는 이미지만 표시한다.
changeMonth: true, // 월을 바꿀수 있는 셀렉트 박스를 표시한다.
changeYear: true, // 년을 바꿀 수 있는 셀렉트 박스를 표시한다.
minDate: '-100y', // 현재날짜로부터 100년이전까지 년을 표시한다.
nextText: '다음 달', // next 아이콘의 툴팁.
prevText: '이전 달', // prev 아이콘의 툴팁.
numberOfMonths: [1,1], // 한번에 얼마나 많은 월을 표시할것인가. [2,3] 일 경우, 2(행) x 3(열) = 6개의 월을 표시한다.
stepMonths: 3, // next, prev 버튼을 클릭했을때 얼마나 많은 월을 이동하여 표시하는가.
yearRange: 'c-100:c+10', // 년도 선택 셀렉트박스를 현재 년도에서 이전, 이후로 얼마의 범위를 표시할것인가.
showButtonPanel: true, // 캘린더 하단에 버튼 패널을 표시한다.
currentText: '오늘 날짜' , // 오늘 날짜로 이동하는 버튼 패널
closeText: '닫기', // 닫기 버튼 패널
dateFormat: "yy-mm-dd", // 텍스트 필드에 입력되는 날짜 형식.
showAnim: "slide", //애니메이션을 적용한다.
showMonthAfterYear: true , // 월, 년순의 셀렉트 박스를 년,월 순으로 바꿔준다.
dayNamesMin: ['월', '화', '수', '목', '금', '토', '일'], // 요일의 한글 형식.
monthNamesShort: ['1월','2월','3월','4월','5월','6월','7월','8월','9월','10월','11월','12월'] // 월의 한글 형식.
yearRange: "2010:2013" //연도 범위
*/
});
});
</script>
</head>
<body>
<h3>speingEmpSelectForm.jsp</h3>
<hr>
<form name="empSearchForm" id="empSearchForm">
<select id="searchFilter" name="searchFilter">
<option value="key_00">전체------------</option>
<option value="key_01">사번</option>
<option value="key_02">이름</option>
</select>
<input type="text" id="keyword" placeholder="검색어 입력"><br>
<input type="text" id="startDate" name="startDate" size="10" placeholder="시작일">
~
<input type="text" id="endDate" name="endDate" size="10" placeholder="종료일"><br>
<input type="button" id="search_btn" name="search_btn" value="검색">
<input type="reset" id="reset_btn" name="reset_btn" value="리셋"><br>
</form>
</body>
</html>
- springEmpSelect.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="a.b.c.com.emp.vo.SpringEmpVO" %>
<%@ page import="java.util.List" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h3>springEmpSelect.jsp</h3>
<hr>
<%
Object obj = request.getAttribute("searchList");
if (obj == null) { return; }
List<SpringEmpVO> list = (List<SpringEmpVO>)obj;
if (list.size() > 0) {
for (int i=0; i < list.size(); i++) {
SpringEmpVO evo = list.get(i);
%>
<%= evo.getEmpno() %>
<%= evo.getEname() %>
<%= evo.getHiredate() %><br>
<%
}
}
%>
</body>
</html>
- springEmpSelectAll.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="a.b.c.com.emp.vo.SpringEmpVO" %>
<%@ page import="java.util.List" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h3>springEmpSelectAll.jsp</h3>
<hr>
<%
Object obj = request.getAttribute("listAll");
if (obj == null) { return; }
List<SpringEmpVO> list = (List<SpringEmpVO>)obj;
if (list.size() > 0) {
for (int i=0; i < list.size(); i++) {
SpringEmpVO evo = list.get(i);
%>
<%= evo.getEmpno() %>
<%= evo.getEname() %>
<%= evo.getHiredate() %><br>
<%
}
}
%>
<h3>EMP SELECT ALL : jstl & el</h3>
<hr>
<c:forEach items="${listAll}" var="emp">
${emp.empno }
${emp.ename }
${emp.hiredate }<br>
</c:forEach>
<h3>EMP SELECT ALL : jsp & el</h3>
<hr>
<%
Object obj1 = request.getAttribute("listAll");
if (obj1 == null){ return; }
List<SpringEmpVO> list1 = (List<SpringEmpVO>)obj1;
pageContext.setAttribute("list11", list1);
%>
${list11[0].empno } ${list11[0].ename } ${list11[0].hiredate }<br>
${list11[1].empno } ${list11[1].ename } ${list11[1].hiredate }<br>
</body>
</html>
8교시 (17:30-18:30)
Spring + Mybatis selectAll (전체 조회), select (조건 조회), update (수정) 기능 구현
- springEmpUpdateForm.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script src="http://code.jquery.com/jquery-latest.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$(document).on("click", "#updateBtn", function(){
console.log("updateBtn >>> : ");
$("#springEmpUpdate").attr({
"action":"springEmpUpdate.k",
"method":"GET",
"enctype":"application/x-www-form-urlencoded"
}).submit();
});
});
</script>
</head>
<body>
<h3>springEmpUpdateForm.jsp</h3>
<hr>
<form name="springEmpUpdate" id="springEmpUpdate">
<table border="1" class="align">
<tr>
<td colspan="2" class="align">EMP 수정</td>
</tr>
<tr>
<td class="align">사원번호</td>
<td><input type="text" name="empno" id="empno" size="20"></td>
</tr>
<tr>
<td class="align">사원이름</td>
<td><input type="text" name="ename" id="ename" size="20"></td>
</tr>
<tr>
<td class="align">입사월</td>
<td><input type="text" name="hiredate" id="hiredate" size="20"></td>
</tr>
<tr>
<td colspan="2" class="align">
<input type="button" value="EMP_수정" id="updateBtn">
</td>
</tr>
</table>
</form>
</body>
</html>
- springEmpUpdate.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h3>springEmpUpdate.jsp</h3>
<hr>
</body>
</html>
- index.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h3>Spring Framework + Mybatis Framework</h3>
<hr>
<a href="springEmpInsertForm.k">springEmp 입력 테스트</a>
<a href="springEmpSelectAll.k">springEmp 전체 조회 테스트</a>
<a href="springEmpSelectForm.k">springEmp 조건 조회 테스트</a>
<a href="springEmpUpdateForm.k">springEmp 수정 테스트</a>
</body>
</html>
Notes
728x90