Programming/Mybatis
[Mybatis] resultType 을 DTO 또는 VO 로 리턴 시 주의사항
OriginMaster
2021. 12. 6. 16:46
반응형
DTO 클래스 또는 VO 클래스의 클래스 변수들의 이름을 데이터베이스의 컬럼명과 동일하게 해주어야
resultType이 DTO 또는 VO 일때, 해당 클래스로 반환된다.
예시
- DTO 클래스
@Data
public class UserDTO {
private String user_email;
private String user_pw;
private String user_pwCnf;
public String getUser_email() {
return user_email;
}
public void setUser_email(String user_email) {
this.user_email = user_email;
}
public String getUser_pw() {
return user_pw;
}
public void setUser_pw(String user_pw) {
this.user_pw = user_pw;
}
public String getUser_pwCnf() {
return user_pwCnf;
}
public void setUser_pwCnf(String user_pwCnf) {
this.user_pwCnf = user_pwCnf;
}
}
- Mapper.xml
<mapper namespace="com.home.mapper.LoginMapper">
<sql id="userColumns">
user_email,
user_pw
</sql>
<select id="selectUser" parameterType="com.home.DTO.UserDTO" resultType="com.home.DTO.UserDTO">
SELECT user_email, user_pw FROM tbl_user
WHERE user_email= #{user_email, jdbcType=VARCHAR} AND user_pw= #{user_pw, jdbcType=VARCHAR}
</select>
</mapper>
resultType 이 UserDTO인데,
데이터베이스 컬럼명과 UserDTO 클래스의 변수명이 다르면 값이 존재해도 null 값이 반환된다....
이걸 잊고 엉뚱한데서 한참을 해맸다...
반응형