일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- AWS
- Web Server
- IntelliJ
- jsp
- Spring
- devops
- tool
- php
- springboot
- elasticsearch
- Oracle
- javascript
- Gradle
- ubuntu
- laravel
- MySQL
- linux
- Design Patterns
- Spring Boot
- jenkins
- Git
- java
- 맛집
- Spring Batch
- it
- db
- JVM
- ReactJS
- redis
- 요리
Archives
- Today
- Total
아무거나
데이터 저장시 insert key 반환(=마지막으로 저장된 키값 반환) 본문
반응형
예를 들어 아래와 같은 Mapper Method와 User Entity가 존재한다고 가정하자.
[User.java]
@Getter
@Setter
public class User {
private int id;
private String password;
private String passwordConfirm;
private String loginId;
private String userName;
private int active;
private String accessToken;
}
[UserMapper.java]
@Transactional
int setUserInfo(@Param("param") User param);
setUserInfo를 id로 매핑되어있는 Mapper.xml 파일을 확인하면 아래와 같이 예시로 쿼리가 작성되어있다.
[UserMapper.xml]
<insert id="setUserInfo" parameterType="com.wmp.admin.member.entity.User" useGeneratedKeys="true" keyProperty="param.id">
INSERT INTO user
(
active, login_id, user_name, password
)
VALUES
(
#{param.active}, #{param.loginId}, #{param.userName}, #{param.password}
)
</insert>
그러면 위의 UserMapper.java의 setUserInfo 메소드의 주입된 대상인 User(=param) 즉, User의 key Property 값인 id에 반환된 키값을 set해준다.
아래와 같이 사용하면 된다.
( UserService.java에 User 정보를 저장하는 메소드가 있다고 가정하자 )
[UserService.java]
public void saveUser(User user) {
// 회원 정보 저장
user.setPassword(bCryptPasswordEncoder.encode(user.getPassword()));
user.setActive(0);
userMapper.setUserInfo(user);
Role role = roleMapper.getRoleInfo("ADMIN");
UserRole userRole = new UserRole();
userRole.setRoleId(role.getId());
userRole.setUserId(user.getId()); // 반환된 키값
userRoleMapper.setUserRoleInfo(userRole);
}
반응형
'Java & Kotlin > Mybatis' 카테고리의 다른 글
반복되는 쿼리 묶기 (0) | 2020.05.28 |
---|---|
다중쿼리 사용 (0) | 2020.05.13 |
db update change 값 리턴받아오는 방법 (0) | 2018.12.27 |
Invalid bound statement (not found) 에러 문제 (0) | 2018.12.05 |
Comments