특수문자 입력을 막기 위해서 찾은 방법이 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
'Spring > DB_MyBatis' 카테고리의 다른 글
[ Mybatis / Spring ] foreach 구문을 이용해서 Insert 대량 삽입하기 (0) | 2022.03.15 |
---|---|
[ mybatis ] insert/update 쿼리 실행 후 값 가져오기(useGeneratedKeys, keyProperty, SelectKey) (0) | 2022.03.15 |
[MyBatis] 개발 생산성 향상,중복 쿼리 줄이기 <sql>,<include> 개념 및 문법 (0) | 2022.03.10 |
[MyBatis] #{} 와 ${} 차이점 (0) | 2022.03.09 |
[ mybatis, ibatis ] <![CDATA[ ]> - 쿼리문에서 기호 안될경우 (0) | 2022.03.08 |
댓글