보라코딩
코드로 배우는 스프링 웹 프로젝트 Part3 (ch8) 본문
src/main/java에 org.zerock.domain 패키지 만들어서
BoardVO 클래스 생성
package org.zerock.domain;
import java.util.Date; //util 의 date 라는 점!!
import lombok.Data;
@Data
public class BoardVO {
private Long bno;
private String title, content, writer;
private Date regdate, updateDate;
}
src/main/java에 org.zerock.mapper 패키지 만들어서
BoardMapper 클래스 생성
package org.zerock.mapper;
import java.util.List;
import org.zerock.domain.BoardVO;
public interface BoardMapper {
List<BoardVO> getList();
}
src/main/resources에 org 폴더 만들고 zerock 폴더만들고 mapper 폴더 만들어서
BoardMapper.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 = "org.zerock.mapper.BoardMapper">
<select id = "getList" resultType = "org.zerock.domain.BoardVO">
select * from tbl_board order by bno desc
</select>
</mapper>
src/test/java 폴더에 org.zerock.mapper 패키지에
BoardMapperTest 클래스 생성
package org.zerock.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.extern.log4j.Log4j;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("file:src/main/webapp/WEB-INF/spring/root-context.xml")
@Log4j
public class BoardMapperTests {
@Autowired
private BoardMapper boardMapper;
@Test
public void testGetList() {
log.info("---------------");
boardMapper.getList();
}
}
Insert
BoardMapper 클래스에 내용 추가
public void insert(BoardVO board);
BoardMapper.xml에 내용 추가
<insert id = "insert">
insert into tbl_board (bno, title, content, writer)
values (seq_board.nextval, #{title}, #{content}, #{writer})
</insert>
BoardMapperTests에 내용추가
@Test
public void testInsert() {
BoardVO vo = new BoardVO();
vo.setTitle("Test 테스트");
vo.setContent("Content 테스트");
vo.setWriter("tester");
boardMapper.insert(vo);
}
InsertSelectkey
BoardMapper 클래스에 내용 추가
public void insertSelectKey(BoardVO board);
BoardMapper.xml에 내용 추가
<insert id = "insertSelectKey">
<selectKey order = "BEFORE" keyProperty = "bno" resultType ="Long">
select seq_board.nextval from dual
</selectKey>
insert into tbl_board (bno, title, content, writer)
values (#{bno}, #{title}, #{content}, #{writer})
</insert>
BoardMapperTests에 내용추가
@Test
public void testInsertSelectKey() {
BoardVO vo = new BoardVO();
vo.setTitle("AAATest 테스트");
vo.setContent("AAAContent 테스트");
vo.setWriter("tester");
boardMapper.insertSelectKey(vo);
log.info("------------------");
log.info("after insert selectKey " + vo.getBno());
}
read
BoardMapper 클래스에 내용 추가
public BoardVO read(Long bno);
BoardMapper.xml에 내용 추가
<select id = "read" resultType ="org.zerock.domain.BoardVO">
select * from tbl_board where bno = #{bno}
</select>
BoardMapperTests에 내용추가
@Test
public void testRead() {
BoardVO board = boardMapper.read(251L);
log.info(board);
}
delete
BoardMapper 클래스에 내용 추가
int delete(Long bno); // 삭제나 수정은 int로 주로 사용
BoardMapper.xml에 내용 추가
<delete id = "delete">
delete from tbl_board where bno = #{bno}
</delete>
BoardMapperTests에 내용추가
@Test
public void testDelete() {
int count = boardMapper.delete(222L);
log.info("count : " + count);
}
update
BoardMapper 클래스에 내용 추가
int update(BoardVO board);
BoardMapper.xml에 내용 추가
<update id = "update">
update tbl_board
set title = #{title},
content = #{content},
writer = #{writer},
updatedate = sysdate
where bno = #{bno}
</update>
BoardMapperTests에 내용추가
@Test
public void testUpdate() {
BoardVO board = new BoardVO();
board.setBno(251L);
board.setTitle("Updated Title");
board.setContent("Updated content");
board.setWriter("wowww");
log.info("count : " + boardMapper.update(board));
}
'코딩 > Spring' 카테고리의 다른 글
코드로 배우는 스프링 웹 프로젝트 Part3 (ch11) (0) | 2023.02.26 |
---|---|
코드로 배우는 스프링 웹 프로젝트 Part3 (ch9) (0) | 2023.02.05 |
코드로 배우는 스프링 웹 프로젝트 Part3 (0) | 2023.02.05 |
코드로 배우는 스프링 웹 프로젝트 Part2 (1) | 2023.01.29 |
코드로 배우는 스프링 웹 프로젝트 Part2 (0) | 2023.01.29 |