# Spring03

제로·2023년 1월 11일
0

Spring

목록 보기
3/18

1. 스프링 DB연결 1단계

  1. 흐름 순서
    1) url 요청값 처리
    2) controller호출
    3) 모델 데이터 처리(dao 호출 후, 데이터 설정)
    4) view 화면 호출, 모델 데이터 출력
  2. 처리 순서
    1) 처리할 데이터 sql, dao 처리
    2) controller 작성 및 초기화면 로딩
    3) dao 호출 및 모델 데이터 할당
    4) 모델 데이터에 맞게 화면단 구현
# 사원정보 조회
@Controller
public class A01_EmpController {
	private A02_EmpDao dao;
	public A01_EmpController() {
		dao = new A02_EmpDao();
	}
	// http://localhost:7080/springweb/empList.do
	@RequestMapping("/empList.do")
	public String empList(Emp sch,Model d) {
    	// 초기화면에 전체 데이터가 출력되도록 설정
		if(sch.getEname()==null) sch.setEname("");
		if(sch.getJob()==null) sch.setJob("");
		if(sch.getToSal()==0) sch.setToSal(9999);
        // 모델 데이터 생성
		d.addAttribute("empList",dao.getEmpSch(sch));
		return "WEB-INF\\views\\a02_dao1\\a01_empList.jsp";
	}
} 
@ View단
<div class="container">
	<form id="frm01" class="form"  method="post">
	    <input name="ename" value="${emp.ename }" class="form-control mr-sm-2" placeholder="사원명" />
	    <input name="job" value="${emp.job }" class="form-control mr-sm-2" placeholder="직책" />
	    <input name="frSal" value="${emp.frSal }" class="form-control mr-sm-2" placeholder="급여시작" />
	    <input name="toSal" value="${emp.toSal }" class="form-control mr-sm-2" placeholder="급여끝" />
	    <button class="btn btn-info" type="submit">Search</button>
	    <button class="btn btn-secondary" data-toggle="modal" data-target="#exampleModalCenter" type="button">등록</button>
	</form>
   <table class="table table-hover table-striped">
    <thead> <tr class="table-success text-center">
    	<th>사원번호</th>
    	<th>사원명</th>
        <th>직책</th>
        <th>급여</th>
        <th>부서번호</th></tr></thead>	
    <tbody>
    	<c:forEach var="emp" items="${empList }"> 
        // 전송된 모델데이터를 반복문을 통해 출력
          <tr><td>${emp.empno }</td><td>${emp.ename }</td>
          <td>${emp.job }</td><td>${emp.sal }</td>
          <td>${emp.deptno }</td></tr>
		</c:forEach>
    </tbody>
	</table>    
</div>
  • 초기화면
  • 검색어 입력 후 화면

2. 스프링 등록 처리

  1. DAO : sql ==> vo ==> 메서드
  2. controller 초기화면구성
  3. 등록처리 controller 기능메서드 추가
    1) 등록요청값 vo
    2) 등록 후, 처리할 controller 선언
  4. 화면에서 등록할 데이터 form 만들기
    • action = "등록컨트롤러메서드"
# 사원정보 등록
@ Controller
	@RequestMapping("/insertEmp.do")
	public String insertEmp(Emp ins) {
		dao.insertEmp(ins);
        // redirect 방식으로 해야 초기화면(사원정보리스트 조회)에 전체 데이터가 로딩된다. 
        // forward 방식으로 하면 요청값도 함께 넘어가서 방금 등록한 데이터만 출력됌
		return "redirect:/empList.do";
	}
    
@ view 단
<form id="frm02" class="form"  method="post" action="${path }/insertEmp.do">
	 <input type="text" class="form-control" placeholder="사원명 입력" name="ename">
	 <input type="text" class="form-control" placeholder="직책명 입력" name="job">
     // select를 통해 관지자 번호와 부서번호를 입력받음
	 <select name="mgr" class="form-control">
		<option value="0000">관리자 선택</option>
		<option value="7698">BLAKE</option>
		<option value="7839">KING</option>
		<option value="7782">CLARK</option>
		<option value="7900">JAMES</option>
		<option value="7902">FORD</option>
		<option value="7566">JONES</option>
	 </select>
	 <select name="deptno" class="form-control">
		<option value="00">부서번호 선택</option>
		<option value="11">인사</option>
		<option value="12">재무</option>
		<option value="19">총무</option>
		<option value="20">RESEARCH</option>
		<option value="30">SALES</option>
		<option value="40">OPERATIONS</option>
	</select>
	<input type="number" class="form-control" placeholder="연봉 입력" name="sal">
	<input type="number" class="form-control" placeholder="보너스 입력" name="comm">
	<input type="text" onfocus="this.type='date'" onblur="this.type='text'" class="form-control" placeholder="입사일자 입력" name="hiredateS">
 </form> 
 // focus 했을 때 type이 date 형으로 바뀌고 blur 되면 text 타입으로 변경됌
  • 등록버튼 클릭시 초기화면
  • 등록할 사원 정보 입력
  • save 버튼 클릭시(조회 화면으로 이동되고, 방금 등록한 사원 정보도 함께 조회된다)
profile
아자아자 화이팅

0개의 댓글

관련 채용 정보