MyBatis (6) 썸네일형 리스트형 [MyBatis] 바인딩 ${}, #{} MyBatis에서는 SQL 쿼리에 동적으로 값을 바인딩할 때 #{}와 ${}를 사용한다.이 둘은 매우 비슷해 보이지만, 동작 방식과 보안 측면에서 중요한 차이가 있다.1. #{}설명: #{}는 PreparedStatement의 바인딩 파라미터로 사용된다. MyBatis가 #{}를 만나면 해당 위치에 값이 삽입될 때 SQL 문을 미리 컴파일하고, 값이 바인딩될 때 이를 안전하게 처리한다.보안: SQL 인젝션 공격으로부터 안전하다. 사용자가 입력한 값이 SQL 문 내에서 적절히 이스케이프 처리되어 삽입되기 때문에, 악의적인 SQL 코드가 실행될 위험이 없다.사용 예제 SELECT * FROM users WHERE id = #{id}동작 원리: 위의 SQL에서 #{id}는 컴파일 시점에 ?로 대체되고, 실행.. [MyBatis] <selectKey> 란? 데이터베이스에 자동 생성된 키 값을 가져와 활용해야 하는 경우가 빈번하다. 주로 INSERT 작업에서 생성되는 키 값을 MyBatis의 를 사용하면 간편하게 가져올 수 있다.의 역할는 INSERT 문을 실행하기 전에 또는 후에 특정 SQL 쿼리를 실행하여 자동 생성된 값을 조회하는 데 사용된다. 주로 다음과 같은 상황에서 활용된다:자동 증가 키 가져오기: 데이터베이스에서 자동으로 증가하는 기본 키를 가져와야 할 때.시퀀스에서 값 조회하기: 시퀀스를 사용하여 기본 키를 생성하고, 해당 값을 조회할 때.사용 방법를 사용하려면 다음과 같은 구조를 가진 SQL 매퍼 XML을 작성해야 한다: 정의: 자동 생성된 값을 조회할 쿼리를 정의한다. 문: 데이터를 삽입할 때 사용할 INSERT 문을 정의한다.예제다음 예제.. [MyBatis] CDATA 사용법 CDATA는 무엇인가?CDATA -> Character Data문자열을 의미한다.CDATA , 왜 사용하죠?쿼리문에서 특수문자, 비교연산자를 사용하는 경우가 있는데 이를 MyBatis에서 사용할 경우 오류가 나는 경우가 많다. 이 때문에 태그 안의 내용을 모두 문자열로 치환시켜 버리는 CDATA를 자주 사용한다. 예시 SELECT PDCT_NAME ,PDCT_PRICE ,PDCT_STATUS FROM TB_PRODUCT WHERE PDCT_PRICE > 1000 해당 쿼리에서 비교연산자인 '>' 가 닫힘 태그로 인식되어서 에러가 발생한다. CDATA, 어떻게 사용하나요?사용 예시를 통해서 알아보자. 1. 비교연산자인 '>'만 CDATA 태그로 감싸서.. MyBatis <choose> 태그 사용법 및 <if> 태그와의 차이 MyBatis의 태그는 SQL문의 여러 조건을 처리하기 위해 사용한다. 태그와 비슷하다고 생각할 수 있지만 차이가 있으니 오늘 포스팅을 통해 상황에 맞게 사용해보자!! 포스팅 마지막에는 태그와의 차이점 또한 정리할테니 참고해보자. 태그는 Java의 switch 와 유사하게 동작한다. 하나 이상의 태그와 필요에 따라 태그를 포함할 수 있다. 예제를 살펴보자 SELECT * FROM users WHERE name = #{name} age = #{age} 1 = 1 태그 뒤에 붙는 'test'는 태그의 'test'와 동일하게 조건을.. MyBatis <if> 태그 사용법 MyBatis의 'if' 태그는 동적 SQL을 보다 간편하게 생성할 수 있도록 도와준다. 그리 어렵지 않으니 바로 예제를 통해 알아보자! 주의해야 할 점은 'if' 뒤에 붙는 test는 조건을 의미하고 필수로 적어주어야 한다!! SELECT * FROM users WHERE 1=1 AND name = #{name} AND age = #{age} 위의 예제에서 'name' , 'age' 파라미터가 null이 아닌 경우에 태그 안의 SQL이 포함된다. name = "홍길동" 이고 age = null 이라면예제의 SQL 문은 최종적으로 SELECT * FROM users WHERE 1=1 AND name = "홍길동"이러한 형.. SpringBoot 프로젝트에서 MyBatis 설정하기 오늘은 SpringBoot 프로젝트에서 MyBatis 사용을 위해 필요한 것들에 대해 포스팅 하려고 한다. 간단하게 순서를 정리해보자 1. 프로젝트에 MyBatis 의존성 추가하기 2. MyBatis 설정3. MyBatis Mapper 인터페이스 생성 4. XML 파일 생성 위의 순서대로 차근차근 따라가면 MyBatis를 사용할 수 있다. 1. 프로젝트에 MyBatis 의존성 추가하기 pom.xml (Maven) 또는 build.gradle (Gradle) 파일에 MyBatis 관련 의존성을 추가해보자. ex) pom.xml (Maven) org.springframework.boot spring-boot-starter-web .. 이전 1 다음