62일차

김윤정·2024년 9월 11일

코딩

목록 보기
51/60
post-thumbnail

1. 아래의 스프링 용어를 설명하시오.

@ModelAttribute

ModelAttribute 는 클라이언트로부터 일반 HTTP 요청 파라미터나 multipart/form-data 형태의 파라미터를 받아 객체로 사용하고 싶을 때 이용됩니다.

@Service

Service 어노테이션은 해당 클래스가 비즈니스 로직을 담당하는 서비스 계층 구성 요소임을 알려주는 어노테이션입니다.

  • 주로 Service Layer 클래스에 사용
  • 스프링 컨테이너에 해당 클래스를 빈으로 등록
  • 스프링의 트랜잭션 관리를 받음
  • 비즈니스 로직을 가지고 있음

@Repository

DB나 파일같은 외부 I/O 작업을 처리합니다

@Autowired

스프링이 만든 빈을 자동으로 갖고옵니다

2. 스프링에서 redirect란?

redirect란 클라이언트가 한페이지에서 다른 페이지로 이동할 수있도록 서버가 다른 페이지로 이동시키는 기능을 제공합니다.

위에 사진처럼 원하는 주소로 지정할 수 있습니다.

3. junit 에 대하여 설명하시오.

자바 개발자가 가장 많이 사용하는 테스팅 기반 프레임워크로 API 모듈과 테스트 실행을 위한 API가 분리되어 있습니다.

4. emp 가 나오도록 하시오.

EmpVO

package edu.ict.ex.vo;

import java.sql.Date;

import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;

@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
@ToString
public class EmpVO {
	private int empno;
	private String ename;
	private String job;
	private int mgr;
	private Date hiredate;
	private int sal;
	private int comm;
	private int deptno;
	
}

EmpDao

package edu.ict.ex.repository;

import java.sql.Connection;
import java.sql.Date;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;

import org.springframework.stereotype.Repository;

import edu.ict.ex.vo.EmpVO;


@Repository

public class EmpDao {
	public List<EmpVO> empSelect(){
	      
	      List<EmpVO> vos = new ArrayList<>();
	      
	      Connection connetion = null;
	      Statement statement = null;
	      ResultSet rs = null;
	      
	      String driver = "oracle.jdbc.driver.OracleDriver";
	      String url = "jdbc:oracle:thin:@localhost:1521:xe";
	      String uid = "scott";
	      String upw = "tiger";
	      

	      
	      String sql = "select * from emp";
	      
	      try{
	         Class.forName(driver);
	         
	         connetion = DriverManager.getConnection(url, uid, upw);
	         
	         statement = connetion.createStatement();
	         rs = statement.executeQuery(sql);
	         
	   
	         while(rs.next()){
	            int empno = rs.getInt("empno");
	            String ename = rs.getString("ename");
	            String job = rs.getString("job");
	            int mgr = rs.getInt("mgr");
	            Date hiredate = rs.getDate("hiredate");
	            int sal = rs.getInt("sal");
	            int comm = rs.getInt("comm");
	            int deptno = rs.getInt("deptno");
	            EmpVO vo = new EmpVO(empno,ename,job,mgr,hiredate,sal,comm,deptno);
	            
	            vos.add(vo);
	         }         
	         
	      }catch(Exception e){
	         e.printStackTrace();
	      }
	      finally{
	         
	         try{
	            if(rs != null) 
	               rs.close();
	            
	            if(statement != null) 
	               statement.close();
	            
	            if(connetion != null) 
	               connetion.close();
	         } catch(Exception e){}
	         
	      }
	      
	      return vos;
	      
	   }

}

EmpService

package edu.ict.ex.service;


import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import edu.ict.ex.repository.EmpDao;
import edu.ict.ex.vo.EmpVO;



@Service
public class EmpService {
	@Autowired
	private EmpDao dao;
	
	public List<EmpVO>getList(){
		System.out.println("getList()..");
		
		return dao.empSelect();
	}
	
}

EmpController

package edu.ict.ex.controller;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;

import edu.ict.ex.service.EmpService;



@Controller
@RequestMapping("/emp")
public class EmpController {
	@Autowired
	private EmpService empService;
	
	@GetMapping("/list")
	public String list(Model model) {
		System.out.println("list()..");
		
		model.addAttribute("empList", empService.getList());
		
		return "emp/list";
	}
	
}

list.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<h1>emp 리스트</h1>
	<table border="1">
		<tr>
			<td>사원번호</td>
			<td>사원이름</td>
			<td>직업</td>
			<td>매니저</td>
			<td>입사일자</td>
			<td>급여</td>
			<td>보너스</td>
			<td>부서번호</td>
		</tr>

		<c:forEach var="emp" items="${empList}">
			<tr>

				<td>${emp.empno}</td>
				<td>${emp.ename}</td>
				<td>${emp.job}</td>
				<td>${emp.mgr}</td>
				<td>${emp.hiredate}</td>
				<td>${emp.sal}</td>
				<td>${emp.comm}</td>
				<td>${emp.deptno}</td>

			</tr>
		</c:forEach>

	</table>
</body>
</html>

5. 스프링에서 Service 단의 역할은?

JSP/Servlet에서 mvc2의 command역할

6. 스프링에서 Repository 단의 역할은?

JSP/Servlet에서 mvc2의 Dao역할

0개의 댓글