티스토리 뷰
로그인 구현하면서 select로 로그인이 안되는 상황에 발생했다.
개발초기라 DB와 연결이 안된 줄 알았는데 회원가입할 때 쓰이는 insert 구문은 제대로 돼서
select의 문제인가 하고 있었다.
로그를 출력하면 로그인 메서드를 실행까지는 하지만 정작 값을 가져오면 null이 나와서 쿼리문을 조작해봤다.
로그인을 실행하는 userCheck 쿼리문
<select id="userCheck" resultType="com.web.domain.MemberDTO">
SELECT *
FROM USER_INFO
WHERE USER_ID = #{userId}
AND USER_PASS = #{userPass}
</select>
해당 쿼리문에 컬럼 alias를 DTO 값으로 바꾸니 들어간다!
SELECT USER_ID as userId
FROM USER_INFO
WHERE USER_ID = #{userId}
AND USER_PASS = #{userPass}
DTO에는 카멜 표기법, DB에는 스네이크 표기법을 쓴 게 상호 인식을 하지 못해서 발생하는 문제였다!
하지만 일일이 alias하면 시간도 많이 걸리고 오류가 날 테니까
자동으로 카멜 표기법으로 변환할 수 있는 건 없을까 찾아본 결과,
mybatis-config.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<!-- 카멜 표기법 변환 -->
<configuration>
<settings>
<setting name="mapUnderscoreToCamelCase" value="true" />
</settings>
</configuration>
mybatis-config.xml 파일에 해당 세팅을 추가해주면 쉽게 자동으로 바꿔진다.
주의할 점은 이제 DTO 값은 무조건 카멜 표기법으로 입력해야한다.
이후에 팀원이 DTO 값을 스네이크 표기법으로 했다가 오류가 나서 통일시키기로 하였음!
'배운 것 기록 > 오류 노트' 카테고리의 다른 글
[Spring] HTTP 404 - 요청된 리소스 [/]은(는) 가용하지 않습니다. (0) | 2022.08.26 |
---|---|
[Spring] 카멜케이스 표기법 단축키 (0) | 2022.08.23 |
[Spring] org.springframework.web.servlet.PageNotFound - Request method 'GET' not supported (0) | 2022.08.15 |
[Github] There isn't anything to compare. (0) | 2022.08.13 |
[Spring] The Tomcat server configuration Server at localhost-config is missing (0) | 2022.08.11 |
댓글