2012-03-12 1 views
0

MYSQL을 사용하여 Java에서 파일을 만드는 동안 이상한 문제가 있습니다.파일 이름을 만들 때 작은 따옴표가 Java에서 두 개의 작은 따옴표로 자동 대체됩니다.

내 코드 :

String lChildSql = this.lSQLBucket.select("get.child.by.name") 
         .replace("LEFT").with(lLeft) 
         .replace("RIGHT").with(lRight) 
         .replace("LEVEL").with(lLevel + 1) 
         .replace("NAME").with(pName).get() 
        ResultSet lChildRs = lDB.Qry(lChildSql); 

샘플 : 내가 pName은의 raj'sek'har과 가진 파일을 만들 경우의 주권 "SEK"로 생성되는 자동하겠다.

이 문제를 해결할 수 있도록 도와주세요. 무슨 말을 알 수없는 사용자

감사합니다,

주권

+0

사용중인 모든 코드를 게시 할 수 있습니까? –

+0

작은 따옴표 두 개가 아닌지 확인할 수 있습니까? SQL은 아포스트로피를 가려 내기 위해 종종 두 개의 작은 따옴표를 사용하지 않습니까? –

+0

안녕하세요 @ 사용자 알 수없는, 예, 그 두 개의 작은 따옴표로 바뀌지 않고 그 이중 따옴표 ... 어떻게이 문제를 해결할 수 있습니다 – user27

답변

1

이 정상적인 행동이라는 것이다. 그것은 단어 내에서 작은 따옴표 (아포스트로피)로 SQL을 처리하는 방법입니다.

sql은 문자열에 작은 따옴표 (예 : 'this is a string')를 사용하지만 문자열에 작은 따옴표가 포함되어 있으면 문자열이 "일찍 끝나기"때문에 'this isn't going to work' - 문제가 발생할 수 있습니다.

그래서 SQL은 두 개의 작은 아포스트로피를 사용합니다.이 아포스트로피는 실제로 "단일 이스케이프 시퀀스"를 나타내며 단일 단일 아포스트로피 [012]가 필요합니다 : 'this''ll work fine'.

참고 : 이것은 표시 전용입니다. "실제로"아무것도 대체하지 않고 데이터를 검색하면 모든 것이 정상적으로 처리됩니다.

someone else saying the same thing

관련 문제