Spring 5일차

MOZZI KIM·2022년 12월 13일
0

Spring

목록 보기
5/8
post-thumbnail

1. 마이바티스를 활용하여, 게시판을 완성하시오.


2.아래의 @를 설명하시오.

📌 @Component

@Component 어노테이션을 이용하면 Bean Configuration 파일에 Bean을 따로 등록하지 않아도 사용할 수 있다. 빈 등록자체를 빈 클래스 자체에다가 할 수 있다는 의미이다.
@Component 어노테이션은 기본적으로 타입기반의 자동주입 어노테이션이다.

📌 @Autowired

스프링에서 빈 인스턴스가 생성된 이후 @Autowired를 설정한 메서드가 자동으로 호출되고, 인스턴스가 자동으로 주입된다.
즉, 해당 변수 및 메서드에 스프링이 관리하는 Bean을 자동으로 매핑해주는 개념
@Autowired 는 변수, Setter메서드, 생성자, 일반 메서드에 적용이 가능하며,

<property>, <constructor-arg>

태그와 동일한 역할을 한다.

📌 @Controller

Controller는 MVC 패턴의 C에 해당하고,

주로 사용자의 요청을 처리 한 후 지정된 뷰에 모델 객체를 넘겨주는 역할을 수행한다.

지정된 뷰에 모델 객체를 넘겨주는 역할은 두 가지로 나누어 설명할 수 있다.

  1. 사용자들이 웹브라우저에서 'URI *'로 요청을 보내면, 그 요청을 컨트롤러가 받게된다.
  2. 요청에 대한 응답(View)을 반환한다.

📌 @Service

비즈니스 로직이나 respository layer 호출하는 함수에 사용된다. 다른 어노테이션과 다르게 @Component에 추가된 기능은 없다. 하지만 나중에 Spring 측에서 추가적인 exception handling을 해줄 수도 있으니 비즈니스 로직에는 해당 어노테이션을 사용하자.

📌 @Mapper

@Mapper는 마커 인터페이스라는 것이다.

  • 마커 인터페이스: 기능이 있는게 아니라 마커, 즉 무언가 표시를 하기 위한 인터페이스를 의미한다.

즉, @Mapper는 단순히 '이것은 매퍼입니다!!'라는 것을 표시하기 위한 어노테이션이라는 것이다.
중요한 것은 @Mapper와 같이 쓰이는 @MapperScan이지 굳이 @Mapper를 쓰지 않고 커스텀 어노테이션을 생성해서 사용해도 된다.

📌 @SpringBootApplication

@SpringBootApplication은 자동 설정을 해주기 위한 어노테이션으로, org.springframework.boot.autoconfigure 패키지에 들어 있다

📌 @SpringBootTest

@SpringBootTest 어노테이션을 통해 스프링부트 어플리케이션 테스트에 필요한 거의 모든 의존성을 제공해 줍니다.

-@SpringBootTest 어노테이션 내에 어떠한 테스트 환경으로 테스트를 실행할 것인지를 따로 지정할 수 있습니다.

스프링부트 테스트를 진행하기 위해서는 먼저 다음과 같이 의존성을 추가해야 합니다.

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-test</artifactId>
    <scope>test</scope>
</dependency>

3. 다음 SQL 문을 작성하시오.

--dallas에서 근무하는 모든 사의 이름 직업 부서버호 및 부서이름을 출력
SELECT ENAME, JOB, E.DEPTNO, DNAME 
FROM EMP E, DEPT D 
WHERE E.DEPTNO = D.DEPTNO AND LOC = 'DALLAS';

--모든 사원의 이름, 직업 , 부서이름, 급여 및 등급을 출력하라
SELECT ENAME, JOB, DNAME, SAL, GRADE 
FROM EMP E, DEPT D, SALGRADE G 
WHERE D.DEPTNO = E.DEPTNO AND E.SAL BETWEEN G.LOSAL AND G.HISAL;

--스미스보다 늦게 입사한 사원의 이름 및 입사일을 출력하라
SELECT ENAME, HIREDATE FROM EMP WHERE HIREDATE > (SELECT HIREDATE FROM EMP WHERE ENAME = 'SMITH');

--모든 사원의 급여 최고액 최저액 총액 및 평균액을 출력하되,
각 컬럼명을 mzximum, minimum, sum, average 로 지저하여 출력하라.
SELECT MAX(SAL) AS Maximum, MIN(SAL) AS Minimum, SUM(SAL) AS Sum, AVG(SAL) AS Averager FROM EMP;

--각 직업별로 급여 최저액 최고액 총액 및 평균액을 출력하라
SELECT JOB, MIN(SAL), MAX(SAL), SUM(SAL), AVG(SAL) FROM EMP GROUP BY JOB;

--직업이 동일한 사람 수를 직업과 같이 출력하라
SELECT JOB, COUNT(JOB) FROM EMP GROUP BY JOB;
-----------------------------------------------------------------------
profile
코린이

0개의 댓글