Я знаю, что есть много вопросов, которые конкретно задают это, но я не уверен в моем случае. Я использую Spring Batch и FieldSetMapper, поэтому я генерирую эти выражения в виде строк и собираю эти строки и передавая их в свой ItemWriter. В этом смысле я не хочу использовать подготовленное заявление. Вот что я получил:Escape символов в SQL без подготовленного заявления
private static String insertStmt = "insert into ..."
//this is the beginning of the insert statement. Not gonna type it all out
private String addStatement() {
String values = String
.format("values ('%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s' ESCAPE '\'')",
this.primCustNum, this.primCustName, this.mfstRptId,
this.shtlStpNum, this.primCustAddr1,
this.primCustAddr2, this.primCustCity,
this.primCustState, this.primCustPostalCde,
this.primCustPhoneNum);
//log.info("INSERT+VALUES: {}", insertStmt + values);
return insertStmt + values;
}
, но это не будет вести дело, как insert into ... where values ('tony's place', ...);
потому что tony's
имеет apostraphe
Отлично. Это сработало! –