728x90

 

 

 

Controller

/********************************************** QnA : 쓰기  *******************************************************/

	//
	@RequestMapping("boardQnaWriteView.bo")
	public String boardQnaWriteForm() {
		return "boardQnaWriteForm";
	}

	// 게시판 글쓰기
	@RequestMapping("boardQnaWriteForm.bo")
	public String insertBoard(@ModelAttribute BoardQnA b) {

		System.out.println(b);

//		  b.setQnaTitle("qnaTitle"); 
//		  b.setQnaContent("qnaContent"); 세터를 따로 지정해서 값을 주었기 때문에 저 값이 저장된것
//		  파람은 단일, 모델어트리뷰트는 복수 저장할 때 사용.
//		  모델어트리뷰트는 뷰의 파라미터값과 vo클래스의 필드명(정확히는 세터명)이 같은 것을 매핑함.
//		 @ModelAttribute BoardQnA b로 받아오면서 뷰의 name속성 파라미터랑 vo 클래스의 필드명(세터명)이랑 같아서 
//		  자연스럽게 받아올 수 있었지만 세터를 새로 지정하고 거기에 "qnaTitle" 스트링값을 새로 주었기 때문에 저값이 db에 저장된 것


		int result = bService.insertBoardQna(b);
		System.out.println(result);
 
		if (result > 0) {
			return "redirect:boardQna.bo";
		} else {
			throw new BoardException("문의사항 등록에 실패하였습니다.");
		}
	}

 

Service & DAO

//BoardService
int getQnaListCount();
ArrayList<BoardQnA> getBoardQnaList(PageInfo pi);
int insertBoardQna(BoardQnA b);	


// BoardServiceImpl
@Override
public int insertBoardQna(BoardQnA b) {
    return bDAO.insertBoardQna(sqlSession, b);
}

// BoardDAO
public int insertBoardQna(SqlSessionTemplate sqlSession, BoardQnA b) {
    return sqlSession.insert("boardMapper.insertBoardQna",b);
}

 

Board-mapper.xml

	<!-- QnA 조회 : 페이징처리1 - 총게시물 --> 
	<select id="getQnaListCount" resultType="_int"> <!-- resultType,resultMap 무조건 있어야함. 리절셋하고 나서 뭘로 받을지 정해줘야하기에 -->
		select count(*)
		from qna
		where qna_status = 'Y'
	</select>
	
<!-- QnA 조회 : 페이징처리2 - 필요 게시물 --> 
	<select id="getBoardQnaList" resultMap="boardQnaResultSet">
		select *
		from qna 
		where qna_status = 'Y'
		order by qna_no desc
	</select>
	<resultMap type="BoardQnA" id="boardQnaResultSet">	<!-- type="" 속성 별칭 설정하면 Board도 가능 -->
		<id column="QNA_NO" property="qnaNo"/> 					<!-- PK(기본키) -->
		<result column="QNA_TITLE" property="qnaTitle"/>		<!-- 일반 컬럼 -->
		<result column="QNA_CONTENT" property="qnaContent"/>  <!-- 위의 select태그에서 join해서 가져온 멤버테이블의 컬럼 nickname  -->
		<result column="QNA_CREATE_DATE" property="qnaCreateDate"/>
		<result column="QNA_MODIFY_DATE" property="qnaModifyDate"/>
		<result column="QNA_STATUS" property="qnaStatus"/>
		<result column="QNA_ANS_STATUS" property="qnaAnsStatus"/>
		<result column="EMAIL_ID" property="emailId"/>
	</resultMap>
    
    <insert id="insertBoardQna"> 
		insert into qna
		values(seq_qnaid.nextval, #{qnaTitle}, #{qnaContent}, sysdate, default, default, default, default)
	</insert>
728x90
반응형

+ Recent posts