Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 슬픔의 후에
- IT
- 장범준
- 인덱스
- 신입
- 기타
- 니가 참 좋아
- index
- nginx
- 개발자
- Inside Of Me
- 6학년 8반 1분단
- 오라클
- 천공의 시간
- DBMS
- 봄 사랑 벚꽃 말고
- 핑거스타일
- 데이터베이스
- 악보
- DBMS 구성요소
- 오라클 아키텍처
- oracle
- SQL 처리
- 아이유
- I'm fine thank you
- 말 더듬
- 레이디스코드
- db
- 러블리즈
- 스위트라떼
Archives
취미로 음악을 하는 개발자
[Spring Boot] MyBatis HashMap 사용 본문
728x90
MyBatis Query 성공시
Select - Select 문에 해당하는 결과
Insert - 1 (여러 개일 경우도 1)
Update - Update된 행의 개수 반환 (없으면 0)
Delete - Delete된 행의 개수 반환 (없으면 0)
프로젝트 생성
코드 구현
* build.gradle, application.properties, dto 및 jsp부분은 이전 프로젝트 것을 그대로 사용.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | package com.study.springboot.dao; import java.util.List; import java.util.Map; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import com.study.springboot.dto.SimpleBbsDto; @Mapper public interface ISimpleBbsDao { List<SimpleBbsDto> listDao(); SimpleBbsDto viewDao(String id); Integer writeDao(Map<String, String> map); Integer deleteDao(@Param("id") String id); Integer articleCount(); } | cs |
writeDao 부분을 Map을 이용하여 구현.
articleCount()는 현재 테이블의 행의 개수를 출력, 나머지는 이전 프로젝트와 같다.
// SimpleBbsDao.xml
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 | <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.study.springboot.dao.ISimpleBbsDao"> <select id="listDao" resultType="com.study.springboot.dto.SimpleBbsDto"> select * from simple_bbs order by id desc </select> <select id="viewDao" resultType="com.study.springboot.dto.SimpleBbsDto"> select * from simple_bbs where id = #{0} </select> <select id="writeDao" parameterType="java.util.HashMap"> insert into simple_bbs (writer, title, content) values (#{item1}, #{item2}, #{item3}) </select> <select id="deleteDao"> delete from simple_bbs where id = #{id} </select> <select id="articleCount" resultType="int"> select count(*) from simple_bbs </select> </mapper> | cs |
writeDao에 파라미터 타입을 HashMap으로 해줘서 item1, 2, 3을 파라미터로 받게 한다.
articleCount는 위에서 말한 것처럼 행의 개수를 출력, 출력값은 항상 정수이므로 int타입으로 함.
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 | package com.study.springboot; import java.util.HashMap; import java.util.Map; import javax.servlet.http.HttpServletRequest; 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 com.study.springboot.dao.ISimpleBbsDao; @Controller public class MyController { @Autowired ISimpleBbsDao dao; @RequestMapping("/") public String root() throws Exception { return "redirect:list"; } @RequestMapping("/list") public String userlistPage(Model model) { model.addAttribute("list", dao.listDao()); int nTotleCount = dao.articleCount(); System.out.println("Count : " + nTotleCount); return "/list"; } @RequestMapping("/view") public String view(HttpServletRequest request,Model model) { String sId = request.getParameter("id"); model.addAttribute("dto", dao.viewDao(sId)); return "/view"; } @RequestMapping("/writeForm") public String writeForm() { return "/writeForm"; } @RequestMapping("/write") public String write(HttpServletRequest request, Model model) { String sName = request.getParameter("writer"); String sTitle = request.getParameter("title"); String sContent = request.getParameter("content"); Map<String, String> map = new HashMap<String, String>(); map.put("item1", sName); map.put("item2", sTitle); map.put("item3", sContent); int nResult = dao.writeDao(map); System.out.println("Write : " + nResult); return "redirect:list"; } @RequestMapping("/delete") public String delete(HttpServletRequest request, Model model) { String sId = request.getParameter("id"); int nResult = dao.deleteDao(sId); System.out.println("Delete : " + nResult); return "redirect:list"; } } | cs |
list, write, delete에 각각 출력문이 나오게했다.
* 원래 delete, write가 1을 출력해야하는데 왜 null을 출력하는지 모르겠다. 참고로 실행은 제대로 된다. 나중에 따로 올릴 것임.
write 메소드를 보면 HashMap을 사용했는데 결국에는 model에 속성을 더한 것과 비슷하다.
writer, title, content 값을 변수에 저장하고 item이라는 키의 값으로 넣어주고 그것을 writeDao의 값으로 넣어준 것.
'공대인 > Spring[Boot]' 카테고리의 다른 글
[Spring Boot] Transaction (Manager, Template, Propagation) (0) | 2019.08.22 |
---|---|
[Spring Boot] logback (0) | 2019.08.16 |
[Spring Boot] MyBatis 파라미터 사용 (0) | 2019.08.14 |
[Spring Boot] MyBatis (0) | 2019.08.13 |
[Spring Framework] MyBatis란 (0) | 2019.08.09 |
Comments