파게로그
[Persistence Framework] DB의 View 이용하기 본문
특별한 기능을 사용하는 것은 아니다.
예를 들어 Assignment 하나의 정보를 보고자 한다면,
ASSIGNMENT 테이블의 내용과 CHAPTER 테이블의 내용이 JOIN되어야 한다.
이는 SQL을 통해 DB에서 직접 View를 생성하고, 이를 이용하는 메서드를 생성하는 정도로 정리할 수 있다.
그리고 Entity 패키지에는 Assignment를 상속받는 AssignmentView 클래스를 다음과 같이 생성할 수 있다.
package com.ddoongi.springbootwebprj.entity;
import java.sql.Date;
public class AssignmentView extends Assignment {
private String chapterName;
public AssignmentView() {
}
public AssignmentView(int assignment_no, String title, String content, Date regDate, int comments, boolean highlight, String chapterName) {
super(assignment_no, title, content, regDate, comments, highlight);
this.chapterName = chapterName;
}
public String getChapterName() {
return chapterName;
}
public void setChapterName(String chapterName) {
this.chapterName = chapterName;
}
@Override
public String toString() {
return "AssignmentView{" +
"chapterName='" + chapterName + '\'' +
'}'; // ...
}
}
다만 메서드의 이름에 getViewList( )와 같이 View를 명시하여 헷갈리는 일이 없도록 하면 좋다.
SELECT * FROM assignment;
SELECT * FROM chapter;
SELECT A.*, c.name chapter_name
FROM assignment A
JOIN chapter C ON a.chapter = c.chapter_no;
곧, 우리는 다음의 SQL문을 통해 뷰를 생성할 수 있다.
CREATE VIEW AssignmentView
AS
SELECT A.*, c.name chapter_name
FROM assignment A
JOIN chapter C ON a.chapter = c.chapter_no;
'콤퓨타 왕기초 > Spring Boot' 카테고리의 다른 글
[Persistence Framework] Mapping using XML: Dynamic SQL Mapper (0) | 2021.05.24 |
---|---|
[Persistence Framework] MyBatis의 XML을 이용한 매핑 (0) | 2021.05.11 |
[Persistence Framework] column mapping, parameters in Mapper (0) | 2021.05.10 |
[Persistence Framework] MyBatis를 통한 DAO 인터페이스의 구현 (0) | 2021.05.10 |
인스턴스 생성을 딱 한 번만, singleton pattern (0) | 2021.05.07 |
Comments