티스토리 뷰
* 입력
1. VO작성 : 테이블의 구조를 객체화
2. BoardDAO.java : 인터페이스
public void create(BoardVO vo) throws Exception;
3. mapper
<insert id="create">
INSERT INTO tbl_board (title, content, writer)
values(#{title},#{content}, #{writer})
</insert>
4. BoardDAOImpl.java : SqlsessionTemplate을 이용해서 원하는 코드 호출
@Inject
private SqlSession session;
private static String namespace = "org.zerock.mapper.BoardMapper";
@Override
public void create(BoardVO vo) throws Exception {
session.insert(namespace + ".create", vo);
}
* 비스니스 계층 : 컨트롤러와 DAO 사이의 접착제 역할
비즈니스 계층의 구현은 로직에 필요한 데이터베이스 관련 객체들을 모아서 자신이 원하는 일을 처리하는 용도.
5. BoardService.java : 인터페이스
public void regist(BoardVO board) throws Exception;
6. BoardServiceImpl.java
@Inject
private BoardDAO dao;
@Override
public void regist(BoardVO board) throws Exception {
dao.create(board);
}
7. BoardController.java
private static final Logger logger = LoggerFactory.getLogger(BoardController.class);
@Inject
private BoardService service;
@RequestMapping(value = "/register", method = RequestMethod.GET)
public void registerGET(BoardVO board, Model model) throws Exception {
logger.info("register get ...........");
}
@RequestMapping(value = "/register", method = RequestMethod.POST)
public String registPOST(BoardVO board, RedirectAttributes rttr) throws Exception {
logger.info("regist post ...........");
logger.info(board.toString());
service.regist(board);
rttr.addFlashAttribute("msg", "success");
return "redirect:/board/listAll";
}
8. register.jsp : <form>의 method 속성이 'post'로 지정된 것과 action이 지정되지 않았는데 이것은 form의 action 속성이 지정되지 않으면 현재 경로를 그대로 action의 대상 경로로 잡는다
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@include file="../include/header.jsp"%>
<!-- Main content -->
<section class="content">
<div class="row">
<!-- left column -->
<div class="col-md-12">
<!-- general form elements -->
<div class="box box-primary">
<div class="box-header">
<h3 class="box-title">REGISTER BOARD</h3>
</div>
<!-- /.box-header -->
<form role="form" method="post">
<div class="box-body">
<div class="form-group">
<label for="exampleInputEmail1">Title</label> <input type="text"
name='title' class="form-control" placeholder="Enter Title">
</div>
<div class="form-group">
<label for="exampleInputPassword1">Content</label>
<textarea class="form-control" name="content" rows="3"
placeholder="Enter ..."></textarea>
</div>
<div class="form-group">
<label for="exampleInputEmail1">Writer</label> <input type="text"
name="writer" class="form-control" placeholder="Enter Writer">
</div>
</div>
<!-- /.box-body -->
<div class="box-footer">
<button type="submit" class="btn btn-primary">Submit</button>
</div>
</form>
</div>
<!-- /.box -->
</div>
<!--/.col (left) -->
</div>
<!-- /.row -->
</section>
<!-- /.content -->
</div>
<!-- /.content-wrapper -->
<%@include file="../include/footer.jsp"%>
'Spring' 카테고리의 다른 글
SPRING 조회 기능 순서 흐름 (0) | 2018.12.14 |
---|---|
SPRING 리스트 기능 순서 흐름 (0) | 2018.12.14 |
Mybatis 에러 (0) | 2018.04.11 |
mybatis selectKey (0) | 2018.03.26 |
코드로 배우는 웹 스프링 프로젝트 mysql->oracle (0) | 2018.01.30 |