java 는 sql 구문 에서 like 를 사용 하여 매개 변 수 를 java. util. Unknown FormattConversionException: Conversion =

1859 단어 JavaSQL
오늘 아주 오래된 프로젝트 를 수정 할 때 sql 조회 에서 like 를 사용 하여 파 라 메 터 를 전달 하고 모호 한 조 회 를 하 는 것 이 필요 합 니 다.
다음 과 같다.
 sql_Static_person = String.format(
      "select * from t_info where HD='%s' and (GG='%s' or GG is null) 
and BS<=1 and ZH='%s' and flag=0 and bz like %s ",aa(), bb(), cc(),dd());


사실 수 요 는 매우 간단 합 니 다. 바로 dd () 의 매개 변수 값 을 bz like 후의% s 에 직접 전달 하 는 것 입 니 다. 여러 가지 방법 을 시도 해 보 았 습 니 다. 처음에 concat 를 사용 하여 연결 을 했 는데 항상 나타 나 는 것 을 발 견 했 습 니 다.
Conversion = '' 의 오류, java. util. Unknown Format Conversion Exception: Conversion = '';
 sql_Static_person = String.format(
      "select * from t_info where HD='%s' and (GG='%s' or GG is null) 
and BS<=1 and ZH='%s' and flag=0 and bz like concat('%',%s,'%') ",aa(), bb(), cc(),dd());

신문 의 오 류 를 보면 데이터 형식의 문제 일 것 이다. 그래서 안의 전 의 를 생각 했다. 다음 과 같다.
 sql_Static_person = String.format(
      "select * from t_info where HD='%s' and (GG='%s' or GG is null) 
and BS<=1 and ZH='%s' and flag=0 and bz like concat(\'%\',%s,\'%\') ",aa(), bb(), cc(),dd());

안 타 깝 게 도 같은 오류 가 발생 했 습 니 다. 그래서 갑자기 String. format 처리% 의 전의 가 이런 형식 이 아 닐 것 이 라 고 생각 했 습 니 다.%% 가% 를 전의 해 야 한 다 는 생각 이 들 었 습 니 다. 그래서 다음 과 같 습 니 다.
 sql_Static_person = String.format(
      "select * from t_info where HD='%s' and (GG='%s' or GG is null) 
and BS<=1 and ZH='%s' and flag=0 and bz like '%%%s%%' ",aa(), bb(), cc(),dd());

코드 가 성공 적 으로 실행 되 었 습 니 다. 한 가지 설명 하 겠 습 니 다. 자바 기반 을 잊 어 버 리 는 것 이 많 지 않 습 니 다.
 
또 하 나 는 코드 에 SQL 을 쓰 지 말 라 고 권 합 니 다. 노출 된 인터넷 에 보안 정보 가 존재 하면 SQL 주입 문제 가 발생 할 수 있 으 므 로 이렇게 쓰 지 않도록 해 야 합 니 다.

좋은 웹페이지 즐겨찾기