1.BoardDAO를 생성하고 getList(), register() 생성
2. BoardDAOTest를 생성하고 dao의 getList, register 테스트
3. BoardMapper에 get(Long bno) 기능을 구현한다 (실습)
4. BoardMapperTest를 통해 get 기능 점검(실습)
5. BoardDAO에 read(Long bno) 기능을 구현한다(실습)
6. BoardMapperTest를 통해 read 기능 점검(실습)
7. BoardController 작성
8. resource/board/register.html 작성
9. 글쓰기 기능 동작 확인
10. 업데이트 기능 구현
- BoardMapper.java : update()
- BoardDAO.java : modify()
- 두가지 작성 후 test까지 완료
- src/main/java -> com.koreait.board.dao 패키지 생성 ->BoardDAO.java
package com.koreait.board.dao;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
import com.koreait.board.bean.BoardVO;
import com.koreait.board.mapper.BoardMapper;
@Repository
public class BoardDAO {
@Autowired
private BoardMapper mapper;
//getList
public List<BoardVO> getList(){
return mapper.getList()
}
//register
public int register(BoardVO board){
return mapper.insertSelectKey(board);
}
}
- src/test/java -> com.koreait.board.dao 패키지 생성 -> BoardDAOTest.java 클래스 생성
package com.koreait.board.dao;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import com.koreait.board.bean.BoardVO;
import com.koreait.board.util.MyUtil;
import lombok.extern.slf4j.Slf4j;
@SpringBootTest
@Slf4j
public class BoardDAOTest {
@Autowired
private BoardDAO dao;
@Test
public void testRegister() {
BoardVO board = new BoardVO();
board.setTitle("DAO Test");
board.setContent("for DAO Test");
board.setWriter("DAO Tester");
dao.register(board);
log.info(board.toString());
}
@Test
public void testGetList() {
dao.getList().forEach(board-> log.info(MyUtil.BLUE + board + MyUtil.END));
}
}

Get 기능 만들기
1. src/main/java -> com.koreait.board.mapper -> BoardMapper.java 인터페이스에 추가
package com.koreait.board.mapper;
import java.util.List;
import org.apache.ibatis.annotations.Mapper;
import com.koreait.board.bean.BoardVO;
@Mapper
public interface BoardMapper {
public BoardVO get(Long bno);
}
2. src/main/resources -> BoardMapper.xml 에 새로운 Select 구문 추가
<?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">
<!-- 연결할 인터페이스 정보를 namespace에 기술 -->
<mapper namespace="com.koreait.board.mapper.BoardMapper">
<select id="get" resultType="com.koreait.board.bean.BoardVO">
SELECT BNO, TITLE, CONTENT, WRITER, REGDATE, UPDATEDATE
FROM TBL_BOARD
WHERE BNO = #{bno}
</select>
</mapper>
3. src/test/java -> com.koreait.board.mapper -> BoardDAOTest.java에 테스트 함수 추가
package com.koreait.board.dao;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import com.koreait.board.bean.BoardVO;
import com.koreait.board.util.MyUtil;
import lombok.extern.slf4j.Slf4j;
@SpringBootTest
@Slf4j
public class BoardDAOTest {
@Autowired
private BoardDAO dao;
@Test
public void testGet()
{
BoardVO board;
Long ln = 30l;
board = dao.get(ln);
log.info(MyUtil.BOLD + MyUtil.BLUE + board.toString() + MyUtil.END);
}
}

Controller
src/main/java -> com.koreait.board.controller 패키지 생성 -> BoardController.java 클래스 생성
package com.koreait.board.controller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import com.koreait.board.bean.BoardVO;
import com.koreait.board.dao.BoardDAO;
import lombok.extern.slf4j.Slf4j;
@Controller
@RequestMapping("/board/*")
@Slf4j
public class BoardController {
@Autowired
private BoardDAO dao;
// register(글쓰기) 화면 호출용
@GetMapping("register")
public void register() {
}
// register(글쓰기) 처리용
@PostMapping("register")
public void write(BoardVO board) {
log.info("글 : "+ board);
log.info(dao.register(board) + "건 등록 완료");
}
}
src/main/resources -> templates -> board 새폴더 생성 -> register.html 생성
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Write</title>
</head>
<body>
<h1>글쓰기</h1>
<hr>
<form action="/board/register" method="post">
<p>title : <input type="text" name="title"></p>
<p>content : <br><textarea name="content"></textarea></p>
<p>writer : <input type="text" name="writer"></p>
<input type="submit" value="Register">
</form>
</body>
</html>


Update 기능 구현
xml
<update id="update">
UPDATE TBL_BOARD SET TITLE = #{title}, CONTENT = #{content}, WRITER = #{writer}
WHERE BNO = #{bno}
</update>
BoardMapper.java interface
// 게시글 업데이트
public int update(BoardVO vo);
BoardMapperTest.java
@Test
public void testModify()
{
log.info("test");
Long ln = 30l;
BoardVO board = new BoardVO();
board.setBno(ln);
board.setTitle("수정한 제목");
board.setContent("수정한 본문");
board.setWriter("수정한 글쓴이");
mapper.update(board);
}
BoardDAO.java
@Test
public void testModify()
{
log.info("test");
Long ln = 12l;
BoardVO board = new BoardVO();
board.setBno(ln);
board.setTitle("dao로 수정함");
dao.update(board);
}'자바 공부 > [자바] 기본 공부' 카테고리의 다른 글
| [SPRING] 게시판 만들기 (0) | 2024.12.23 |
|---|---|
| [SPRING] 게시글 추가, 리스트 불러오기 (0) | 2024.12.18 |
| [SPRING] Mapper (1) | 2024.12.12 |
| [SPRING] Lombok 라이브러리 (1) | 2024.12.11 |
| [SPRING] 스프링 프레임워크 기초 (4) | 2024.12.10 |