SPRING - Mybatis 사용하기(3)

저번 포스팅에 이어서

남은 부분 이어서 하겠습니다 

먼저 IDao.xml에 남은 부분들을 채우겠습니다



먼저 글작성과 글삭제를 추가했습니다.

쿼리문 안에 #{param1}은 파라미터가 들어가는 곳 입니다

이전에 우리는 dao 에서 insert 를 사용하기위해

PreparedStatement 를 사용했습니다

"insert into board (mId, mWriter, mContent) values (board_seq.nextval, ?, ?)";

이렇게 ? 값을 준후

밑에서 set을 해줬습니다. 하지만 xml 에서는 이렇게 하지못합니다

때문에 위 이미지처럼 #{param1} 처럼 사용합니다

이때 #와 $를 사용할수 있습니다 

먼저 #을 붙이면 param1 값이 string 이나 int면

컬럼에 맞춰서 변화를 해서 값을 지정해줍니다 

$면 string 이 오면 데이터베이스 타입에 상관없이

그대로 데이터베이스에 넣습니다. 


다음 컨트롤러 수정해줍니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
package com.spring.ex;
 
import java.text.DateFormat;
import java.util.Date;
import java.util.Locale;
 
import javax.servlet.http.HttpServletRequest;
 
import org.apache.ibatis.session.SqlSession;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
 
import com.spring.ex.dao.ContentDao;
import com.spring.ex.dao.IDao;
 
@Controller
public class HomeController {
    
    private static final Logger logger = LoggerFactory.getLogger(HomeController.class);
    
    //ContentDao dao;
    
    
    @Autowired
    private SqlSession sqlSession;
    
    
    //@Autowired
    //public void setDao(ContentDao dao) {
        //this.dao = dao;
    //}
    
    @RequestMapping(value = "/", method = RequestMethod.GET)
    public String home(Locale locale, Model model) {
        logger.info("Welcome home! The client locale is {}.", locale);
        
        Date date = new Date();
        DateFormat dateFormat = DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG, locale);
        
        String formattedDate = dateFormat.format(date);
        
        model.addAttribute("serverTime", formattedDate );
        
        return "home";
    }
    
    @RequestMapping("/list")
    public String list(Model model) {
        
        IDao dao = sqlSession.getMapper(IDao.class);
        //ArrayList<ContentDto> dtos = dao.listDao();
        model.addAttribute("list", dao.listDao());
        //model.addAttribute("list", dtos);
        
        return "/list";
    }
    
    @RequestMapping("/writeForm")
    public String writeForm() {
        
        return "/writeForm";
    }
    
    @RequestMapping("/write")
    public String write(HttpServletRequest request, Model model) {
        IDao dao = sqlSession.getMapper(IDao.class);
        dao.writeDao(request.getParameter("mWriter"), request.getParameter("mContent"));
        return "redirect:list";
    }
    
    @RequestMapping("/view")
    public String view() {
        
        return "/view";
    }
    
    @RequestMapping("/delete")
    public String delete(HttpServletRequest request, Model model) {
        IDao dao = sqlSession.getMapper(IDao.class);
        dao.deleteDao(request.getParameter("mId"));
        return "redirect:list";
    }
    
}
 
cs


위와같이 26line, 33~36line 주석처리 해줍니다

다음 write 와 delete 를 list처럼 수정해줍니다

기존 72line 에서 사용하던 dao는 26line 에서 사용한

dao 였습니다. 하지만 그 26line의 전역변수로 선언된 dao가

필요없어지고 71line 에서 맵퍼를 사용해서 dao를 새로 선언합니다


다음 테스트를 해봅니다.



이렇게 Mybatis 를 이용해 위와같이 글을 작성하고

리스트를 불러오며 글삭제를 할수있습니다.



'SPRING' 카테고리의 다른 글

@RequestBody, @ResponseBody  (0) 2018.03.02
JSON.stringify(); JSON.parse();사용하기  (0) 2018.03.02
SPRING - Mybatis 사용하기(2)  (0) 2018.02.13
SPRING - Mybatis 사용하기(1)  (0) 2018.02.13
SPRING - 스프링 트랜잭션(3)  (0) 2018.02.08

댓글

Designed by JB FACTORY