program tip

Java MessageFormat-작은 따옴표 사이에 값을 삽입하려면 어떻게해야합니까?

radiobox 2020. 11. 30. 08:00
반응형

Java MessageFormat-작은 따옴표 사이에 값을 삽입하려면 어떻게해야합니까?


java.text.MessageFormat 객체를 사용하는 데 문제가 있습니다.

SQL 삽입 문을 만들려고합니다. 문제는 다음과 같이 할 때입니다.

MessageFormat messageFormat = "insert into {0} values ( '{1}', '{2}', '{3}', {4} )";
Object[] args = { str0, str1, str2, str3, str4 };
String result = messageFormat.format(args);

나는 이것을 가치로 얻는다 result:

"insert into <str0> values ( {1}, {2}, {3}, <str4> )"

보시다시피 문제는 작은 따옴표로 묶인 대상 위치가 인수로 대체되지 않는다는 것입니다. 나는 다음 ''{1}''같이 큰 따옴표를 사용해 보았습니다. 그리고 다음 과 같은 이스케이프 문자 : \'{1}\'그러나 여전히 같은 결과를 제공합니다.

편집 : 나는 또한 시도했다 언급하는 것을 잊었다 '''{1}'''. 결과 : "insert into <str0> values ( '{1}', '{2}', '{3}', <str4> )". 원래 따옴표를 유지하지만 여전히 값을 삽입하지 않습니다.

이 문제를 어떻게 해결할 수 있습니까? 기록을 위해 JDK 6u7을 사용하고 있습니다.


나는 큰 따옴표를 시도했지만 잘 작동했습니다.

MessageFormat messageFormat = new MessageFormat("insert into {0} values ( ''{1}'', ''{2}'', ''{3}'', {4} )");
Object[] args = {"000", "111", "222","333","444","555"};
String result = messageFormat.format(args);

결과는 다음과 같습니다.

insert into 000 values ( '111', '222', '333', 444 )

이것이 필요한 것입니까?


이것이 측면에서 벗어난 경우 죄송하지만 이미 JDBC에있는 PreparedStatement를 복제하려는 것 같습니다.

데이터베이스에 대해 실행하기 위해 SQL을 생성하려는 경우 PreparedStatement를 살펴볼 것을 제안합니다. 이미 수행하려는 작업을 수행합니다 (약간 다른 구문 사용).

이게 당신이하는 일이 아니라면 미안 해요, 제가 지적 할 줄 알았어요.


String 내에서 작은 따옴표 쌍을 사용하여 작은 따옴표를 제외한 임의의 문자를 인용 할 수 있습니다. 예를 들어 패턴 문자열 "'{0}'"FormatElement가"{0}" 아니라 string을 나타냅니다 . 작은 따옴표 자체는 전체에서 큰 따옴표로 표시되어야합니다 . 예를 들어, 패턴 문자열 의 순서로 해석됩니다 (인용의 시작과 왼쪽 중괄호), (작은 따옴표), 및 (오른쪽 중괄호 및 인용 끝), 하지(중괄호를 좌우 인용 된) : 문자열 아니라 표현 .''String"'{''}'"'{''}' '{''}'"{'}" "{}"

보낸 사람 : MessageFormat (Java Platform SE 8)


삼중 작은 따옴표 문자 사용 :

MessageFormat messageFormat = "insert into {0} values ( '''{1}''', '''{2}''', '''{3}''', '''{4}''' )";

가장 먼저 떠오른 것은 str1, str2, str3을 작은 따옴표로 둘러싸도록 변경하는 것입니다.

Object [] args = {str0, " '"+ str1 + "'", " '"+ str2 + "'", " '"+ str3 + "'", str4};

물론 쿼리 문자열에서 작은 따옴표를 제거하십시오.

참고 URL : https://stackoverflow.com/questions/189889/java-messageformat-how-can-i-insert-values-between-single-quotes

반응형