Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- Spring
- spring bean
- JPA
- spring pid
- REST API
- 세미나
- tomcat
- spring boot
- ORM
- SuperTypeToken
- JPA mapping
- JUnit
- static inner class
- Data REST
- spring jpa
- ApplicationPidFileWriter
- spring boot tomcat
- IntelliJ
- Spring Data REST
- Spring Data JPA
- batch
- Spring Batch
- 코드 리뷰
- spring camp
- docker
- 톰캣
- spring-webmvc
- spring-webmvc #코드읽기
- spring-mvc
- spring batch 코드
- Today
- 1
- Total
- 916,386
woniper
[mybatis] insert 후 key값 반환 본문
mybatis를 사용해 개발 하다가 insert한 데이터에 대한 key를 얻어야하는 경우가 생겼다. 고민 해봤지만 insert 후 다시 select를 해서 key를 얻어 와야겠다고 생각했다.
하지만 이 방법은 몇가지 문제가 있다고 생각이 들었다.
- key값 하나를 얻기 위해 쿼리를 2번 수행해야 하는 문제.
- unique한 값을 알지 못했을 경우 정확한 key를 얻기 힘들다.(조건절 사용)
1. 흐름
1) insert를 하기 위해 mapper에 parameter로 dto객체를 넘긴다.
2) dto객체를 받은 mapper는 insert 쿼리를 수행한다.
3) insert쿼리 완료 후 parameter로 받은 dto객체에 key값을 set(입력)한다.
4) dto객체에서 key값을 사용한다.
2. dto
package com.woniper.spring.dto; import java.io.Serializable; public class UserDto implements Serializable { private static final long serialVersionUID = -7948360071399248554L; private long key; private String id; //사용자 아이디 private String name; // 사용자 이름 public long getKey() { return key; } public void setKey(long key) { this.key = key; } public String getId() { return id; } public void setId(String id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } }
3. mapper
insert into USER(id, name) values(#{id}, #{name})
useGeneratedKeys="true" : insert 후 key 생성 여부
keyProperty="key" : key 저장 property
keyColumn="key" : key 저장 column
'Framework' 카테고리의 다른 글
[JPA] JavaEE 환경(Spring)에서 JPA 설정 및 CRUD (0) | 2015.05.02 |
---|---|
[JPA] JavaSE 환경에서 JPA 설정 및 CRUD (2) | 2015.05.02 |
[JPA] JPA란 무엇인가? (11) | 2015.05.01 |
[MyBatis] Invalid bound statement (not found): 에러 (9) | 2015.04.01 |
[mybatis] foreach를 이용한 다중 insert (1) | 2014.05.07 |
0 Comments