게시물 등록 - insert
1. BoardMapper.java에 메소드 추가
package com.taeong.mapper;
import java.util.List;
import com.taeong.domain.BoardVO;
public interface BoardMapper {
public List<BoardVO> getList();
// 아래 insert메소드들 추가
public void insert(BoardVO board);
public void insertSelectKey(BoardVO board);
}
- insert() : 단순히 시퀀스의 다음 값을 구해서 insert할 때 사용
- insertSelectKey() : @SelectKey라는 MyBatis의 어노테이션을 사용
- @SelectKey는 주로 PK값을 미리 SQL을 통해서 처리해두고 KeyProperty속성에 지정한 이름으로 결과를 보관하는 방식
- 쿼리문에서 #{bno}와 같이 이미 처리된 결과를 이용
2. BoardMapper.xml에 SQL작성
(1) insert()의 sql문 구현
<insert id="insert">
insert into tbl_board (bno, title, content, writer)
values (seq_board.nextval, #{title}, #{content}, #{writer})
</insert>
mysql문법
더보기
<insert id="insert" useGeneratedKeys="true" keyProperty="bno">
insert into tbl_board (title, content, writer)
values (#{title}, #{content}, #{writer})
</insert>
(2) insertSelectKey()의 sql문 구현
<insert id="insertSelectKey">
<selectKey keyProperty="bno" order="BEFORE" resultType="long">
select seq_board.nextval from dual
</selectKey>
insert into tbl_board (bno, title, content, writer)
values (#{bno}, #{title}, #{content}, #{writer})
</insert>
(3) BoardMapperTests.java에서 테스트
@Test
public void testInsert() {
BoardVO board = new BoardVO();
board.setTitle("새로 작성하는 글");
board.setContent("새로 작성하는 내용");
board.setWriter("태옹");
mapper.insert(board);
log.info(board);
}
게시물 삭제 - delete
1. BoardMapper.java
//delete
public int delete(Long bno);
//리턴타입이 int인 이유는 제대로 작업이 처리된 경우 1을 리턴하는지 확인하기 위함!
2. BoardMappr.xml
<delete id="delete">
delete tbl_board where bno = #{bno}
</delete>
3. BoardMapperTests.java
@Test
public void testDelete() {
log.info("DELETE COUNT : "+mapper.delete(5L));
}
게시물 수정 - update
1. BoardMapper.java
//update
public int update(BoardVO board);
//리턴타입이 int인 이유는 제대로 작업이 처리된 경우 1을 리턴하는지 확인하기 위함!
2. BoardMappr.xml
<update id="update">
update tbl_board
set title= #{title},
content=#{content},
writer = #{writer},
updateDate = sysdate
where bno = #{bno}
</update>
업데이트 할 때는 updateDate를 현재시간으로 수정함
regdate는 수정하지 않기!
3. BoardMapperTests.java
@Test
public void testUpdate() {
BoardVO board = new BoardVO();
// 실행 전 존재하는 번호인지 확인할 것!
board.setBno(1L);
board.setTitle("수정하는 글");
board.setContent("수정된 내용");
board.setWriter("태옹");
log.info("UPDATE COUNT : "+mapper.update(board));
}
'Spring > 게시판프로젝트' 카테고리의 다른 글
[Spring] 게시판 프로젝트6 - Presentation계층 구현 (0) | 2021.07.04 |
---|---|
[Spring] 게시판 프로젝트5 - Business 계층 구현 (0) | 2021.07.04 |
[Spring] 게시판 프로젝트3 - Persistence 계층 구현 (select) (0) | 2021.07.02 |
[Spring] 게시판 프로젝트2 - Oracle Database 연동 (0) | 2021.07.02 |
[Spring] 게시판 프로젝트1 - 프로젝트 생성 (0) | 2021.07.02 |
댓글