본문 바로가기
개발공부/DB

[mysql] resultMap 사용하기, 조인

by dokii 2021. 12. 21.
728x90

각기 다른 vo에서 부분부분 불러오고싶다면? -> 조인을 사용한다.

 

1. 좀더 큰 vo에서 작은 vo객체를 맴버변수로 만들어 포함시킨다. (이때 import해줘야함)

(AnswerVO)

import com.samyo.domain.QuestionVO;

public class AnswerVO {
	private int answer_num;
	private String answer_year;
	private String answer_date;
	private String answer;
	private String public_answer;
	private int question_num;
	private int member_num;
	private String answer_delete;
	private String delete_date;
	
	
	private QuestionVO questionVO;
	
    
    //getter,setter생략
    
    }

 

2. mapper.xml에서 resultMap을 사용해 보자.

(AnswerMapper.xml)

<resultMap type="com.samyo.domain.AnswerVO" id="answerMap">
		<result property="answer_num" column="answer_num"/>
		<result property="answer_year" column="answer_year"/>
		<result property="answer_date" column="answer_date"/>
		<result property="answer" column="answer"/>
		.
        	.
		<collection property="questionVO" resultMap="questionVO"/>
	</resultMap> 
	<resultMap type="com.samyo.domain.QuestionVO" id="questionVO"> //대소문자 구분필수
		<result property="question" column="question"/>
	 	<result property="question_num" column="question_num"/> 
	</resultMap>

	//조인 쿼리
	<select id="readTrash" parameterType="int" resultMap="answerMap"> 	
		SELECT 
			q.question, 
			a.answer_num,
			a.answer_year,
			a.answer_date,
			a.answer,
			.
            		.
		FROM 
			ANSWER a, QUESTION q 
		WHERE 
			a.question_num = q.question_num 
		ORDER BY 
			 question_num DESC, answer_num DESC;
			 

	</select>

3. 결과

 

1-2. 하나만 불러오기

AnswerVO에서 객체형태가아닌 사용할 변수를 선언,  getter setter만들어줌

 

private String question;

public String getQuestion() {
		return question;
	}
	public void setQuestion(String question) {
		this.question = question;
	}

 

2-2 mapper.xml

	<resultMap type="com.samyo.domain.AnswerVO" id="answerMap">
		<result property="answer_num" column="answer_num"/>
		<result property="answer_year" column="answer_year"/>
		.
 		.
		<result property="question" column="question"/>
	</resultMap>

 

 


https://medium.com/webeveloper/mybatis-resultmap%EC%9D%B4%EB%9E%80-854a94df1f78

 

MyBatis resultMap이란?

resultMap ?

medium.com

https://minwoohi.tistory.com/m/87

 

스프링(Spring) 테이블 조인(Join) 예제

스프링 테이블 조인 예제. 게시글 작성할 때 작성자에 대한 정보를 갖기 위해 조인이 필요하다. 게시글 객체인 BoardVO에 작성자 객체인 UserVO를 멤버변수로 만들어 사용한다. package com.blog.naver.user.

minwoohi.tistory.com

 

728x90

댓글