[MyBatis] 비교 표현식
2023. 10. 13. 20:50
프로그래밍/Mybatis
비교 표현식 구분 설명 부등호 문자열 표현식 비교 크다 greater gt > a gt b a > b 작다 little lt = a ge b a >= b 작거나 같다 little or equal le 5 SELECT * FROM order WHERE no =]]> 5 SELECT * FROM order WHERE no 5
[MyBatis] There is no getter for property named ‘xxx’ in 에러
2023. 7. 26. 20:47
프로그래밍/Mybatis
There is no getter for property named ‘xxx’ in 에러 해결 방법 mapper.xml에 써놓은 변수 이름 확인하기 파일에서 #{test} 이렇게 변수 받는 부분의 이름이 잘 설정되어 있는지 확인하면 됨!
[MyBatis] Cause: java.sql.SQLDataException: Cannot determine value type from string 해결
2023. 6. 2. 20:04
프로그래밍/Mybatis
Cause: java.sql.SQLDataException: Cannot determine value type from string 해결 dto에 select 절을 받아줄 생성자가 없어서 발생하는 문제 해결 방법 MyBatis select절에 해당하는 생성자를 생성해주거나 @NoArgsConstructor 혹은 @AllArgsConstructor 를 적절하게 사용하여 생성자를 자동으로 생성해주자 @NoArgsConstructor @AllArgsConstructor public class MyClassDto { // 필드, 메서드 등 클래스의 내용 } 어노테이션에 대한 자세한 설명은 이전 글 참고
[Mybatis] #{}와 ${} 차이
2023. 5. 30. 20:28
프로그래밍/Mybatis
Mybatis #{}와 ${} 표기법 일반적으로 #{}을 사용하여 값을 전달하고, ${}을 사용하여 동적인 SQL을 작성하는 것이 안전하고 권장되는 방법임 ${}의 경우 사용자 입력 값을 포함할 때 주의해야 하며, 반드시 값의 이스케이프와 SQL Injection 방어를 수동으로 처리해야 함 #{} 표기법 SELECT * FROM users WHERE id = #{userId} #{} 안에는 자바 객체의 프로퍼티 이름이나 매개변수 이름 적음 #{} 안에 작성된 값은 자동으로 PreparedStatement의 파라미터로 설정되며, 자동으로 값의 타입에 맞게 변환 #{}은 SQL Injection 공격을 방지하기 위해 내부적으로 값을 이스케이프(escape)하여 처리함 ${} 표기법 SELECT * FROM..
[Mybatis] 자동 생성 키 SelectKey
2022. 4. 5. 20:33
프로그래밍/Mybatis
selectKey 값(인덱스)을 생성하여 DB로 보내줘야 하는 경우 주로 사용 selectKey 사용법 👇 SELECT USER_SEQ.NEXTVAL FROM DUAL selectKey 속성 👇 속성 설명 keyProperty selectKey 구문의 결과가 세팅될 대상 프로퍼티 keyColumn 리턴되는 결과셋의 컬럼명은 프로퍼티와 일치 여러개의 컬럼을 사용한다면 콤마(,)를 사용해서 구분 resultType 결과의 타입 order BEFORE 또는 AFTER를 세팅할 수 있음 BEFORE 👉 키를 먼저 조회하고 그 값을 keyProperty에 세팅한 후 insert 구문 실행 AFTER 👉 insert 구문을 먼서 실행한 후 selectKey 구문 실행 statementType MyBatis는 Sta..
[Mybatis] Cause: java.lang.NumberFormatException: For input string: "Y" 에러 해결 방법
2022. 3. 17. 20:48
프로그래밍/Mybatis
Error querying database. Cause: java.lang.NumberFormatException: For input string: "Y" 에러 해결 방법 Mybatis에서는 " " 큰따옴표와 ' ' 작은따옴표의 구분을 잘 해주어야 함 조건문에 " " 큰따옴표 안에 ' ' 작은 따옴표를 썼다면 오류가 날 수 있음 예시 👇 ... 아래의 예시처럼 변경해주면 오류 해결👏 오류 해결 예시 👇 ...
[Mybatis] <choose>, <when>, <otherwise> 사용법
2022. 3. 11. 20:44
프로그래밍/Mybatis
, , 사용법 java의 if~ else~ 문과 비슷함 만약 태그의 조건식중 true 반환한 것이 없다면 태그 내에 작성된 쿼리문이 실행됨 태그는 생략 가능 쿼리문1 쿼리문2 쿼리문3 쿼리문4 쿼리문5 사용 예제 👇 SELECT * FROM BLOG WHERE state = ‘ACTIVE’ AND title like #{title} AND author_name like #{author.name} REFERENCE mybatis.org/mybatis-3/ko/sqlmap-xml.html MyBatis – 마이바티스 3 | 매퍼 XML 파일 Mapper XML 파일 마이바티스의 가장 큰 장점은 매핑구문이다. 이건 간혹 마법을 부리는 것처럼 보일 수 있다. SQL Map XML 파일은 상대적으로 간단하다. 더..
Invalid bound statement (not found) 오류
2021. 12. 15. 20:26
프로그래밍/Mybatis
Invalid bound statement (not found) 오류가 뜨는 경우 여러가지 원인이 있겠지만 가장 흔한 원인은 아래의 경우임 💡 Mapper 인터페이스와 XML의 오타 id에 오타가 있거나, 선언되어 있는 id가 Mapper 인터페이스의 메서드와 다른 경우에도 발생 할 수 있음 또한 인터페이스의 이름과 XML파일에 선언된 이름이 달라서 생길 수도 있음