org.springframework.jdbc.BadSqlGrammarException: StatementCallback; bad SQL grammar
У меня есть метод
private static final String SQL_ADD_CRIME = "INSERT INTO streetLevelCrimes" +
"(category, " +
"locationType, " +
"latitude, " +
"longitude, " +
"streetId, " +
"streetName, " +
"context, " +
"outcomeCategory, " +
"outcomeDate, " +
"persistentId, " +
"id, " +
"locationSubtype, " +
"month) " +
"VALUES " +
"(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
@Override
public void addCrime(StreetLevelCrimes crime) {
jdbcTemplate.batchUpdate(SQL_ADD_CRIME,
String.valueOf(crime.getCategory()),
String.valueOf(crime.getLocatonType()),
String.valueOf(crime.getLatitude()),
String.valueOf(crime.getLongitude()),
String.valueOf(crime.getStreetId()),
String.valueOf(crime.getStreetName()),
String.valueOf(crime.getContext()),
String.valueOf(crime.getOutcomeCategory()),
String.valueOf(crime.getOutcomeDate()),
String.valueOf(crime.getPersistentId()),
String.valueOf(crime.getId()),
String.valueOf(crime.getLocationSubtype()),
String.valueOf(crime.getMonth())
);
}
При запуске вылетает следующая ошибка
Exception in thread "main" org.springframework.jdbc.BadSqlGrammarException: StatementCallback; bad SQL grammar [INSERT INTO streetLevelCrimes(category, locationType, latitude, longitude, streetId, streetName, context, outcomeCategory, outcomeDate, persistentId, id, locationSubtype, month) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?); anti-social-behaviour; Force; 51.455499; -0.230576; 943348; On or near Cortis Road; null; null; null; null; 62614959; null; 2018-01]; nested exception is org.postgresql.util.PSQLException: ERROR: syntax error at or near ","
Позиция: 188
.
CREATE TABLE streetLevelCrimes (
category TEXT,
locationType TEXT,
latitude DECIMAL,
longitude DECIMAL,
streetId BIGINT,
streetName TEXT,
context BIGINT,
outcomeCategory TEXT,
outcomeDate TIMESTAMP,
persistentId TEXT,
id BIGINT PRIMARY KEY UNIQUE,
locationSubtype TEXT,
month TEXT,
CONSTRAINT FK_crime_category FOREIGN KEY(category)
REFERENCES crimeCategories(url)
);
Подскажите в чем проблема пожалуйста.
Ответы (1 шт):
Автор решения: timur
→ Ссылка
https://mkyong.com/spring/spring-jdbctemplate-batchupdate-example/ https://docs.spring.io/spring/docs/3.0.0.M4/reference/html/ch12s04.html
jdbcTemplate.batchUpdate(SQL_ADD_CRIME,
new BatchPreparedStatementSetter() {
@Override
public void setValues(PreparedStatement ps, int i) throws SQLException {
ps.setString(1, String.valueOf(crime.getCategory()));
//...
}
@Override
public int getBatchSize() { return 1; }
});
);