spring
-
Mybatis에서의 Like문 사용Java/Spring 2020. 8. 9. 19:18
Mybatis에서 동적 쿼리 사용 시 DBMS별로 문법에 차이가 있음. DBMS 종류별 Mybatis LIKE문 사용 방법 Oracle SELECT * FROM table WHERE column LIKE '%'||#{parameter}||'%' MySQL SELECT * FROM table WHERE column LIKE CONCAT(‘%’, #{parameter}, ‘%’) MS-SQL SELECT * FROM table WHERE column LIKE '%' + #{parameter} + '%' 추가로 #{} 대신 ${}을 사용해 SQL에서 쓰던 문법대로 사용하는 것도 가능함. SELECT * FROM table WHERE column LIKE '%${parameter}%' 참고 자료 https://..
-
Mybatis에서 #{}와 ${}의 차이Java/Spring 2020. 8. 9. 19:02
${} 사용 과정 ${} 사용 시 Statement 생성. Statement의 Parameter 값을 그대로 전달. arameter를 그대로 전달하기 때문에 문자열에 따옴표가 붙지 않음. 특징 Parameter가 바로 출력됨. 해당 컬럼의 자료형에 맞춰 Parameter의 자료형이 변경됨. Parameter 값이 넣어진 채로 Query문이 수행됨(parameter 값이 바뀌면 다른 query로 인식). 그러므로 Parameter의 값이 바뀔 때마다 항상 Query문에 대한 파싱을 진행해야 한다는 성능상의 단점을 내재하고 있어 속도가 저하될 수 있음. SQL Injection을 예방할 수 없어 보안 측면에서 불리함. 그러므로 사용자의 입력을 전달할 경우에는 사용하지 않는 편이 좋음. Table이나 Colu..