게으른 완벽주의자의 개발자 도전기
Mybatis를 활용한 기초 board만들기 2(글쓰기 페이지) 본문
1. 글쓰기 페이지
나는 onclick으로 글쓰기 페이지로 이동하도록 만들었다.
작성한 글을 등록하기 위해서는 폼태그를 이용하여야 input태그,
textarea의 데이터를 가져갈 수 있기에
form태그로 감싸고 버튼을 submit으로 바꾼다.
<form action="board_write.do" method="post">
<table>
<tr>
<td>제목</td>
<td>
<input type="text" required name="title">
</td>
</tr>
<tr>
<td>작성자</td>
<td>
<input type="text" required name="writer">
</td>
</tr>
<tr>
<td>내용</td>
<td>
<textarea rows="5" cols="30" name="content"></textarea>
</td>
</tr>
</table>
<div align="center">
<input type="submit" value="글등록">
</div>
</form>
2. mapper에서 쿼리문 작성
<insert id="insertBoard">
INSERT INTO BOARD (BOARD_NUM
, TITLE
, WRITER
, CONTENT
) VALUES (
(SELECT NVL(MAX(BOARD_NUM),0)+1 FROM BOARD)
, #{title}
, #{writer}
, #{content})
</insert>
★DAO에서는 values값에 ?를 입력했지만 mapper에서는
#{변수명} 형태로 입력한다.
#{title}은 board.getTitle(); 실행
#{writer}는 board.getWriter(); 실행
#{content})는 board.getContent(); 실행
그래서 이름 잘못적으면 불러오지 못한다
3. 인터페이스로 이동
"1행이 삽입되었습니다."라는 알림이 뜰 것이기 때문에 리턴값 int로
values에 제목 작성자 내용을 넣어야하기에 DTO를 매개변수로 한다.
int insertBoard(BoardDTO board);
BoardServiceImpl에서는
@Override
public int insertBoard(BoardDTO board) {
int result = sqlSession.insert("boardMapper.insertBoard", board);
sqlSession.commit();
return result;
4. servlet 이동
글을 작성 후 등록하면 다시 목록페이지로 가도록 할 것이다.
else if(command.equals("/board_write.do")) {
String title = request.getParameter("title");
String writer = request.getParameter("writer");
String content = request.getParameter("content");
BoardDTO board = new BoardDTO();
board.setTitle(title);
board.setWriter(writer);
board.setContent(content);
boardService.insertBoard(board);
page ="boardList.do";
isRedirect=true;
'Mybatis' 카테고리의 다른 글
Mybatis를 활용한 기초 board만들기 4(글 수정, 글 삭제) (0) | 2022.08.07 |
---|---|
Mybatis를 활용한 기초 board만들기3 (게시글 상세페이지, 조회수 증가) (0) | 2022.08.07 |
Mybatis 활용한 기초 board 만들기 1 (기본파일 세팅, index, 게시판 목록) (0) | 2022.08.06 |