본문 바로가기
IT/면접준비

Day17

by 봉즙 2019. 8. 14.

1.게시판 구현중 답변을 달기위한 DB저장및 방법에 대하여 설명하시오.

글 작성과 유사하게 글 작성에 대해 처리한다. 답변도 글이기에 글 번호를 설정하며 원글의 번호를 받아오도록하여 그 위치를 지정하도록 하며, 뎁스나 인덴트에 대해서도 선언을 하여 가로 세로의 위치를 설정하는 방식으로 db를 설정한다.

원글을 기준으로해서 bGroup bStep, bIndent에 대한 정보를 가져온다.

step을 증가 시키기 위한 sql문 bGroup에서 찾아서 찾은 bGroup의 스텝보다 큰것에 대해서 +1을 해줌으로써 중간에 step이 끼어 들수 있도록 해준다.

update mvc_board set bStep = bStep =+1 where bGruop = ? and bStep > ?

그 이후 insert into mvc_board (bId, bName, bTitle, bContent, bGroup, bStep, bIndent) values (mvc_board_seq.nextval, ?, ?, ?, ?, ?, ?)

을 통해서 글을 작성하는데 bStep과 bIndent에 대해서 +1을 해주어 위치를 조정하도록 한다.

 

2.아래의 소스코드를 보고, 게시판 구현방법의 설계를 그림으로 나타내어 보시오.

@RequestMapping("/content_view")
public String content_view(HttpServletRequest request, Model model){
	System.out.println("content_view()");
    String bid = request.getParameter("bId");
    IBDao dao = sqlSession.getMapper(IBDao.class);
    model.addAttribute("content_view", dao.ContentDao(bid));
    return "content_view";
}

위 소스

컨트롤러에서 model을 통해 전달한다.

Mybatis에서는 controller까지는 동일하나 command를 사용하지 않고 DAO에있는 함수를 바로 호출하여 사용하는 것이 설계에서의 차이점이다.

 

 

3.#{}와 ${}의 차이

#{}의 경우는 sql에서 ?를 사용하는 것이며, preparedStatement를 사용하여 ''이 붙게 되며 파라미터 내용을 재사용하는 것이 가능하다.

${}의 경우 값이 넣어진쿼리자체, 상수로 수행이된다. 컬럼명이 동적으로 바뀌어야 할 경우 사용한다. 스트링의 경우 ''로 ""을 감싸는 것이 불가능하기에 에러가 발생한다.

 

 

 

 

 

'IT > 면접준비' 카테고리의 다른 글

Day19  (0) 2019.08.20
Day18  (0) 2019.08.19
Day16  (0) 2019.08.13
Day15  (0) 2019.08.12
Day 14  (0) 2019.08.09

댓글