반응형

mybatis 4

[SQL] "BETWEEN 날짜 AND 날짜" 경계값 조회 안 되는 경우 (MyBatis)

[SQL] "BETWEEN 날짜 AND 날짜" 경계값 조회 안 되는 경우 (MyBatis) Mybatis로 if문을 걸어서 sql 조회시 BETWEEN 조건으로 날짜 검색을 하는 경우 경곗값이 검색되지 않았다. AND date BETWEEN #{startDate} AND #{endDdate} startDate에 2022년 1월 1일을 넣고, endDate에 2022년 1월 31일을 넣는 경우 1월 1일 데이터와, 1월 31일 데이터는 검색되지 않았다. 2022년 1월 1일부터 2022년 1월 1일까지 검색하는 경우라면 1월 1일 데이터가 나오길 기대했지만 아무 것도 검색되지 않았다. AND date BETWEEN TO_DATE(#{startDate}) AND TO_DATE(#{endDdate}) 이는 엔..

SQL 2022.08.10

[에러 해결] java.lang.NumberFormatException: For input string

에러 메시지 java.lang.NumberFormatException: For input string 원인 Kafka Topic에서 JSON 데이터를 받아올 때 위와 같은 에러가 났다. 형변환이 잘 안 돼서 나는 에러인 줄 알았는데.. 알고보니 MyBatis 에러였다. 해결 방법 MyBatis에서 if 조건 걸때 작은따옴표와 큰따옴표의 위치를 바꾸니 해결됐다. 변경 전 변경 후 틀린 그림 찾기 갖지만, 자세히 보면 작은따옴표와 큰따옴표의 위치를 바꿨다. 추가 혹시 이 방법으로 해결되지 않는다면, 마이바티스 if문에서도 toString과 같은 메서드를 사용할 수 있으니 이 방법을 이용해보길 바란다.

Java 2022.07.20

[SQL] Expected one result (or null) to be returned by selectOne(), but found: 2 해결 방법

Java에서 MyBatis를 이용해 SQL를 날릴 때 다음과 같은 에러 메시지가 떴다. Expected one result (or null) to be returned by selectOne(), but found: 2 에러 메시지는 참 정직하다. 위 에러 메시지가 무슨 의미인지 해석할 필요도 없이 영어를 한국어로 번역할 수만 있으면 해석 가능하다. 결과값이 1개 또는 null이 나와야 하는데, 실제 실행 결과 2개가 나왔다는 뜻이다. [해결 방법] 이런 경우에는 조회 쿼리를 날렸을 때 실제 조회되는 데이터를 확인해봐야 한다. select 쿼리를 날렸다면 조회된 데이터가 콘솔에 뜰 것이다. 이를 직접 확인해보고 데이터가 몇 개가 나왔는지 확인해보자. 우선, 나는 페이징 처리를 하기 위해 데이터의 총 co..

SQL 2022.06.22

[SQL] mybatis 쿼리 select문 예시 (PostgreSQL)

[SQL] mybatis query select문 예시 (PostgreSQL) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 SELECT t1.mmbr_id /* 회원아이디 */ , t1.mmbr_num /* 회원번호 */ , decode(t1.push_rcms_agrm_ysno, 'Y', '동의', '미동의') AS push_rcms_agrm_ysno /* 푸시수신동의여부 */ , to_char(t1.amnd_dttm, 'YYYY-MM-DD') AS amnd_ymd /* 수정일시 */ FROM 스키마명.테이블명 t1 WHERE 1=1 AND t1.mmbr_id = #{mmbrId} /* 회원아이디 - 검색 조건 1 */ AND t1.mmbr_num = #{mmbrNum} /* 회원번호 - ..

SQL 2022.01.26
반응형