Spring/DB_MyBatis
[Spring] 검색 시 특수문자(%, _ , \) 포함하여 검색하기
snow_hong
2022. 3. 10. 14:26
특수문자 입력을 막기 위해서 찾은 방법이 3가지가 있다.
1. java 단에서 해결하기
2. DB 단에서 해결하기
3. js에서 정규식을 이용하기 → 해당 기능은 만들어 보지 않음
%, _ , \(특수문자)를 검색어에 넣어서 검색해보자.
1. java 단에서 해결하기
- java ( 특수기호에 \를 붙인다.)
if(Vo.get변수명() != null) { // java에서는 '\'기호 대신에 '\\' 로 표현한다.
Vo.set변수명(Vo.get변수명().replaceAll(“\\\\”,”\\\\\\\\”).replaceAll(“%”,”\\\\%”.).replaceAll(“_”, ”\\\_”)); }
- js (입력한 검색어를 java단에서 \기호를 더 넣어주기때문에 입력한 검색어를 그대로 보여주기 위해서 필요)
$(document).ready(function() {
var 변수1 = $(“#변수2”).val().replace(/\\\\/ig,’\\’).replace(“/\\%/ig”,”%”.).replace(“/\\_/ig”, ”_”));
$(“#변수2”).val(변수1);
}
2. DB 단에서 해결하기
where (변수명 LIKE '%' || replace(#{ }, '%', '\%') || '%'
AND 변수명 LIKE '%' || replace(#{ }, '_', '\_') || '%'
AND 변수명 LIKE '%' || replace(#{ }, '\', '\\') || '%')
총 3가지 기능 중에서 2가지만 제작하여봤지만 2.DB 단에서 해결하는 기능이 더 편리했던 것 같다.
728x90