본문 바로가기
Spring/DB_MyBatis

[Spring] 검색 시 특수문자(%, _ , \) 포함하여 검색하기

by snow_hong 2022. 3. 10.

특수문자 입력을 막기 위해서 찾은 방법이 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

댓글