상세 컨텐츠

본문 제목

[MyBatis] 1:N 조회

Spring

by kwanghyup 2022. 7. 6. 16:32

본문

사용할 예제 : 특정 게시글(1)과 그 게시글 댓글(N)의 관계

 

데이터베이스 구성

drop table if exists board_tbl;
create table board_tbl(
bno int auto_increment primary key,
title varchar(300) not null,
content text not null,
writer varchar(50) not null,
regDate timestamp default current_timestamp,
updateDate timestamp default current_timestamp
);
insert into board_tbl(title,content, writer)
values ('게시물 제목입니다.','내용 테스트1.','테스터1');
insert into board_tbl(title,content, writer)
values ('게시물 제목입니다.2','내용 테스트2','테스터2');
insert into board_tbl(title,content, writer)
values ('게시물 제목입니다.3','내용 테스트3','테스터3');
insert into board_tbl(title,content, writer)
values ('게시물 제목입니다.4','내용 테스트4','테스터4');
select * from board_tbl;
create table reply_tbl(
rno int primary key auto_increment,
bno int not null,
reply varchar(1000),
replyer varchar(50),
regDate timestamp default current_timestamp,
updateDate timestamp default current_timestamp
);
alter table reply_tbl
add constraint fk_reply_board foreign key(bno)
references board_tbl(bno);
insert into reply_tbl(bno, reply, replyer)
values('1','1번 게시물 첫 번째 댓글 내용입니다.','댓글작성자');
insert into reply_tbl(bno, reply, replyer)
values('1','1번 게시물 두 번째 댓글 내용입니다.','댓글작성자');
insert into reply_tbl(bno, reply, replyer)
values('1','1번 게시물 세 번째 댓글 내용입니다.','댓글작성자');
alter table board_tbl add column replyCnt int null default 0;
update board_tbl
set replyCnt = (select count(rno) from reply_tbl where board_tbl.bno = reply_tbl.bno);
select * from reply_tbl;

 

 

모델 객체 : Board, ReplyVO

 

매퍼 작성

 

XML 작성

 

관련글 더보기

댓글 영역