[B -2-28] Ajax 댓글 처리 1
2019. 10. 4. 22:59ㆍProject B (SPMS)/Project B 파트5
반응형
댓글 처리를 위한 영속 영역
SQL 실행
...더보기
-- 댓글 테이블 생성
create table TBL_REPLY (
RNO number(10,0),
BNO number(10,0) not null,
REPLY varchar2(1000) not null,
REPLYER varchar2(50) not null,
REPLYDATE date default SYSDATE,
UPDATEDATE date default SYSDATE
);
-- 댓글 시퀀스 생성
create sequence SEQ_REPLY;
-- 댓글 테이블 PK 제약조건 추가
alter table TBL_REPLY
add constraint PK_REPLY
primary key (RNO);
-- 댓글 테이블과 게시판 테이블 관계 연결
alter table TBL_REPLY
add constraint FK_REPLY_BOARD
foreign key (BNO)
references TBL_BOARD (BNO);
TBL_REPLY 테이블은 BNO라는 컬럼을 이용해서 해당 댓글이 어떤 게시물의 댓글인지를 명시하도록 한다.
댓글 자체는 단독으로 CRUD가 가능하므로, 별도의 PK를 부여하도록 하고 외래후보키(FK) 설정을 통해서 TBL_BOARD 테이블을 참조하도록 설정한다.
ReplyVO 클래스의 추가
src/main/java
com.spms.domain
ReplyVO.java
...더보기
package com.spms.domain;
import java.util.Date;
import lombok.Data;
@Data
public class ReplyVO {
private Long rno;
private Long bno;
private String reply;
private String replyer;
private Date replyDate;
private Date updateDate;
}
src/main/java
com.spms.mapper
ReplyMapper.java 인터페이스
...더보기
package com.spms.mapper;
public interface ReplyMapper {
}
src/main/resources
com
spms
mapper
ReplyMapper.xml
...더보기
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.spms.mapper.ReplyMapper">
</mapper>
특정 게시물 번호(bno)에 해당하는 모든 댓글을 가져오는 형태로 작성한다.
ReplyMapper 테스트
src/test/java
com.spms.mapper
ReplyMapperTests.java
...더보기
package com.spms.mapper;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import lombok.Setter;
import lombok.extern.log4j.Log4j;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = {com.spms.config.RootConfig.class} )
@Log4j
public class ReplyMapperTests {
@Setter(onMethod_ = @Autowired)
private ReplyMapper replyMapper;
@Test
public void testMapper() {
log.info(replyMapper);
}
}
개발 초기에는 테스트 코드를 작성하는게 귀찮게 느껴지지만 가능하면 팀 전체가 테스트 코드를 습관적으로 작성하는 노력을 해야한다.
ReplyMapper 유닛 테스트
...더보기
INFO : com.spms.mapper.ReplyMapperTests - org.apache.ibatis.binding.MapperProxy@495b0487
INFO : org.springframework.context.support.GenericApplicationContext - Closing org.springframework.context.support.GenericApplicationContext@57536d79: startup date [Fri Oct 04 22:44:52 JST 2019]; root of context hierarchy
INFO : com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Shutdown initiated...
INFO : jdbc.connection - 1. Connection closed
INFO : jdbc.audit - 1. Connection.close() returned
INFO : jdbc.connection - 2. Connection closed
INFO : jdbc.audit - 2. Connection.close() returned
INFO : jdbc.connection - 4. Connection opened
INFO : jdbc.audit - 4. Connection.new Connection returned
INFO : jdbc.audit - 4. Connection.setReadOnly(false) returned
INFO : jdbc.audit - 4. Connection.setAutoCommit(true) returned
INFO : jdbc.connection - 3. Connection closed
INFO : jdbc.audit - 3. Connection.close() returned
INFO : jdbc.connection - 4. Connection closed
INFO : jdbc.audit - 4. Connection.close() returned
INFO : com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Shutdown completed.
반응형
'Project B (SPMS) > Project B 파트5' 카테고리의 다른 글
[B -2-32] Ajax 댓글 처리 5 (0) | 2019.10.06 |
---|---|
[B -2-31] Ajax 댓글 처리 4 (0) | 2019.10.06 |
[B -2-30] Ajax 댓글 처리 3 (0) | 2019.10.06 |
[B -2-29] Ajax 댓글 처리 2 (0) | 2019.10.06 |
[B -2-27] REST 방식으로 전환 (0) | 2019.10.04 |