2022_02_20 - oneso123456789/2022 GitHub Wiki
#8.2.4 update ์ฒ๋ฆฌ
๋ง์ง๋ง์ผ๋ก update ์ฒ๋ฆฌ๋ฅผํจ
๊ฒ์๋ฌผ์ ์
๋ฐ์ดํธ๋ ์ ๋ชฉ, ๋ด์ฉ ์์ฑ์๋ฅผ ์์ ํ๋ค๊ณ ๊ฐ์ ํจ
์
๋ฐ์ดํธ๋ฅผ ํ ๋๋ ์ต์ข
์์ ์๊ฐ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ด ํ์ฌ ์๊ฐ์ผ๋ก ์์ ํจ
Update๋ delete์ ๋ง์ฐฌ๊ฐ์ง๋ก '๋ช ๊ฐ์ ๋ฐ์ดํฐ๊ฐ ์์ ๋์๋๊ฐ'๋ฅผ ์ฒ๋ฆฌํ ์ ์๊ฒ
int ํ์
์ผ๋ก ๋ฉ์๋๋ฅผ ์ค๊ณํ ์ ์์
public int update(BoardVO board);
๋งค๊ฐ๋ณ์ ์ ์ค๊ณํ๊ธฐ BoardVO ๋ก ํด์ผํ ๊ฒ์ Long ์ผ๋ก ์ค๊ณํจ
<update id="update">
update tbl_board
set title = #{title},
content = #{content},
writer = #{writer},
updateDate = sysdate
where bno = #{bno}
</update>
SQL์์ ์ฃผ์ ๊น๊ฒ ๋ด์ผ ํ๋ ๋ถ๋ถ์ update ์นผ๋ผ์ด ์ต์ข
์์ ์๊ฐ์ ์๋ฏธํ๋ ์นผ๋ผ์ด๊ธฐ ๋๋ฌธ์
ํ์ฌ ์๊ฐ์ผ๋ก ๋ณ๊ฒฝํด ์ฃผ๊ณ ์๋ค๋ ์ ๊ณผ, regdate ์นผ๋ผ์ ์ต์ด ์์ฑ ์๊ฐ์ด๋ฏ๋ก ๊ฑด๋๋ฆฌ์ง ์๋๋ค๋ ์ ์
#{title}๊ณผ ๊ฐ์ ๋ถ๋ถ์ ํ๋ผ๋ฏธํฐ๋ก ์ ๋ฌ๋ BoardVO ๊ฐ์ฒด์ getTitle()๊ณผ ๊ฐ์ ๋ฉ์๋๋ค์
ํธ์ถํด์ ํ๋ผ๋ฏธํฐ๋ค์ด ์ฒ๋ฆฌ๋จ
ํ
์คํธ ์ฝ๋๋ read()๋ฅผ ์ด์ฉํด์ ๊ฐ์ ธ์จ BoardVO ๊ฐ์ฒด์ ์ผ๋ถ๋ฅผ ์์ ํ๋ ๋ฐฉ์์ด๋
์ง์ BoardVO ๊ฐ์ฒด๋ฅผ ์์ฑํด์ ์ฒ๋ฆฌํ ์ ์์
์์ ๋ ๊ฐ์ฒด๋ฅผ ์์ฑํด์ ํ
์คํธ๋ฅผ ์งํํจ
@Test
public void testUpdate() {
BoardVO board = new BoardVO();
board.setBno(5L);
board.setTitle("update์ ๋ชฉ");
board.setContent("update๋ด์ฉ");
board.setWriter("update์์ฑ์");
int count = mapper.update(board);
log.info("UPDATE COUNT: " + count);
}
๋น์ฆ๋์ค ๊ณ์ธต์ ๊ณ ๊ฐ์ ์๊ตฌ์ฌํญ์ ๋ฐ์ํ๋ ๊ณ์ธต์ผ๋ก ํ๋ ์ ํ
์ด์
๊ณ์ธต๊ณผ
์์ ๊ณ์ธต์ ์ค๊ฐ๋ค๋ฆฌ ์ญํ์ ํ๊ฒ๋จ
์์ ๊ณ์ธต์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๊ธฐ์ค์ผ๋ก ํด์ ์ค๊ณ๋ฅผ ๋๋ ๊ตฌํํ์ง๋ง,
๋น์ฆ๋์ค ๊ณ์ธต์ ๋ก์ง์ ๊ธฐ์ค์ผ๋ก ํด์ ์ฒ๋ฆฌํ๊ฒ ๋จ.
์์ปจ๋, '์ผํ๋ชฐ์์ ์ํ์ ๊ตฌ๋งคํ๋ค'๊ณ ๊ฐ์ ํด ๋ด
ํด๋น ์ผํ๋ชฐ์ ๋ก์ง์ด '๋ฌผ๊ฑด์ ๊ตฌ๋งคํ ํ์์๊ฒ๋ ํฌ์ธํธ๋ฅผ ์ฌ๋ ค์ค๋ค'๊ณ ํ๋ฉด
์์ ๊ณ์ธต์ ์ค๊ณ๋ '์ํ'๊ณผ'ํ์'์ผ๋ก ๋๋์ด์ ์ค๊ณํ๊ฒ ๋จ.
๋ฐ๋ฉด์ ๋น์ฆ๋์ค ๊ณ์ธต์ ์ํ ์์ญ๊ณผ ํ์ ์์ญ์ ๋์์ ์ฌ์ฉํด์ ํ๋์ ๋ก์ง์
์ฒ๋ฆฌํ๊ฒ ๋๋ฏ๋ก ๋ค์๊ณผ ๊ฐ์ ๊ตฌ์กฐ๋ฅผ ๋ง๋ค๊ฒ ๋จ
ํ์ฌ ์์ ๋ ๋จ์ผํ ํ
์ด๋ธ์ ์ด์ฉํ๊ธฐ ๋๋ฌธ์ ์์ ๊ฐ์ ๊ตฌ์กฐ๋ ์๋์ง๋ง,
์ค๊ณ๋ฅผ ํ ๋๋ ์์น์ ์ผ๋ก ์์ญ์ ๊ตฌ๋ถํด์ ์์ฑํด์ผ ํจ.
์ผ๋ฐ์ ์ผ๋ก ๋น์ฆ๋์ค ์์ญ์ ์๋ ๊ฐ์ฒด๋ค์ '์๋น์ค(Service)'๋ผ๋ ์ฉ์ด๋ฅผ ๋ง์ด ์ฌ์ฉํจ
๋น์ฆ๋์ค ๊ณ์ธต์ ์ํด์ ํ๋ก์ ํธ ๋ด com.crow.service๋ผ๋ ํจํค์ง๋ฅผ ์์ฑํจ
์ค๊ณ๋ฅผ ํ ๋ ๊ฐ ๊ณ์ธต ๊ฐ์ ์ฐ๊ฒฐ์ ์ธํฐํ์ด์ค๋ฅผ ์ด์ฉํด์ ๋์จํ(loose) ์ฐ๊ฒฐ(๊ฒฐํฉ)์ ํจ
๊ฒ์๋ฌผ์ BoardService ์ธํฐํ์ด์ค์ ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ BoardServiceImplํด๋์ค๋ฅผ ์ ์ธํจ
package com.crow.service;
import java.util.List;
import com.crow.domain.BoardVO;
public interface BoardService {
public void register();
public BoardVO get(Long bno);
public boolean modify(BoardVO board);
public boolean remove(Long bno);
public List<BoardVO> getList();
}
BoardService ๋ฉ์๋๋ฅผ ์ค๊ณํ ๋ ๋ฉ์๋ ์ด๋ฆ์ ํ์ค์ ์ธ ๋ก์ง์
์ด๋ฆ์ ๋ถ์ด๋ ๊ฒ์ด ๊ด๋ก์
๋ช
๋ฐฑํ๊ฒ ๋ฐํํด์ผ ํ ๋ฐ์ดํฐ๊ฐ ์๋ 'select'๋ฅผ ํด์ผ ํ๋ ๋ฉ์๋๋ ๋ฆฌํด ํ์
์ ์ง์ ํ ์ ์์
๊ฒ์๋ฌผ์ ํน์ ํ ๊ฒ์๋ฌผ์ ๊ฐ์ ธ์ค๋ get() ๋ฉ์๋์ ์ ์ฒด ๋ฆฌ์คํธ๋ฅผ ๊ตฌํ๋ getList()์ ๊ฒฝ์ฐ
์ฒ์๋ถํฐ ๋ฉ์๋์ ๋ฆฌํด ํ์
์ ๊ฒฐ์ ํด์ ์งํํ ์ ์์
BoardService ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ๋ ๊ตฌํ์ฒด๋ BoardServiceImpl์ด๋ผ๋ ํด๋์ค๋ก ๊ตฌํ
ํด๋์ค์ ์์ธ ๋ด์ฉ์ ์กฐ๊ธ ๋ฏธ๋ฃจ๊ณ , ์ฝ๊ฐ์ ๋ก๊ทธ๋ฅผ ๊ธฐ๋กํ ์ ์๋ ์ ๋์ ์ฝ๋๋ฅผ ์์ฑํจ
package com.crow.service;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.crow.domain.BoardVO;
import com.crow.mapper.BoardMapper;
import lombok.AllArgsConstructor;
import lombok.Setter;
import lombok.extern.log4j.Log4j;
@Log4j
@Service
@AllArgsConstructor
public class BoardServiceImpl implements BoardService {
private BoardMapper mapper;
@Override
public void register() {
// TODO Auto-generated method stub
}
...
BoardServiceImpl ํด๋์ค์ ๊ฐ์ฅ ์ค์ํ ๋ถ๋ถ์ @Service๋ผ๋ ์ด๋
ธํ
์ด์
์
@Service๋ ๊ณ์ธต ๊ตฌ์กฐ์ ์ฃผ๋ก ๋น์ฆ๋์ค ์์ญ์ ๋ด๋นํ๋ ๊ฐ์ฒด์์ ํ์ํ๊ธฐ ์ํด์ ์ฌ์ฉ
์์ฑ๋ ์ด๋
ธํ
์ด์
์ ํจํค์ง๋ฅผ ์ฝ์ด ๋ค์ด๋ ๋์ ์ฒ๋ฆฌ๋จ
BoardServiceImpl๊ฐ ์ ์์ ์ผ๋ก ๋์ํ๊ธฐ ์ํด์๋ BoardMapper ๊ฐ์ฒด๊ฐ ํ์ํจ
์ด๋ @Autowired์ ๊ฐ์ด ์ง์ ์ค์ ํด ์ค ์ ์๊ณ , Setter๋ฅผ ์ด์ฉํด์ ์ฒ๋ฆฌํ ์๋ ์์
Lombok์ ์ด์ฉํ๋ค๋ฉด ์๋์ ๊ฐ์ ๋ฐฉ์์ผ๋ก ๋ง๋ค ์ ์์
@Log4j
@Service
@AllArgsConstructor
public class BoardServiceImpl implements BoardService {
@Setter(onMethod_ = @Autowired)
private BoardMapper mapper;
...
์คํ๋ง 4.3๋ถํฐ๋ ๋จ์ผ ํ๋ผ๋ฏธํฐ๋ฅผ ๋ฐ๋ ์์ฑ์์ ๊ฒฝ์ฐ์๋ ํ์ํ ํ๋ผ๋ฏธํฐ๋ฅผ ์๋์ผ๋ก ์ฃผ์
ํ ์ ์์
@AllArgsContstructor๋ ๋ชจ๋ ํ๋ผ๋ฏธํฐ๋ฅผ ์ด์ฉํ๋ ์์ฑ์๋ฅผ ๋ง๋ค๊ธฐ ๋๋ฌธ์ ์ค์ ์ฝ๋๋
BoardMapper๋ฅผ ์ฃผ์
๋ฐ๋ ์์ฑ์๊ฐ ๋ง๋ค์ด์ง๊ฒ ๋จ
ํ๋ก์ ํธ ๊ตฌ์กฐ์์ ํด๋์ค๋ฅผ ์กฐ์ฌํด ๋ณด๋ฉด ์คํ๋ง 4.3์ ์๋์ฃผ์
๊ธฐ๋ฅ์ผ๋ก ์ธํด ์์ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ ํํ๊ฐ๋จ
(201p ์๋ ๊ทธ๋ฆผ ์ฐธ์กฐ)