Я новичок в использовании PostgreSQL, я пытаюсь вставить значения из spring jdbc. Вот мой запросВставить запрос в PostgreSQL
private static final String ADD_SELLER = "INSERT INTO SELLER(SELLER_ID, FIRST_NAME, LAST_NAME, TIN_NO, COMPANY_NAME, COMPANY_LOGO, EPCH_NO, VAT_NO, CST_NO, COMMISSION, STATUS, APPROVED, CREATED_DTTM) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, CURRENT_TIMESTAMP)";
И мой код выглядит следующим образом
public void addSeller(SellerDO sellerDO)throws UserDataException {
JdbcTemplate jdbcTemplate = this.getJdbctemplate();
long sellerId = jdbcTemplate.queryForObject(ADD_SELLER, Long.class);
sellerDO.setSellerId(sellerId);
int isSellerAdded = jdbcTemplate.update(ADD_SELLER, new Object[]{sellerId, sellerDO.getFirstName(), sellerDO.getLastName(), sellerDO.getTin_no(), sellerDO.getCompanyName(), sellerDO.getCompanyLogo(), sellerDO.getEpch_no(), sellerDO.getVat_no(), sellerDO.getCst_no(), sellerDO.getCommission(), sellerDO.getStatus(), sellerDO.getApproved()});
try {
if(isSellerAdded == 0){
log.info("Seller registration failed");
}
} catch (DataAccessException dataAccessException) {
throw new UserDataException("Seller registration failed", dataAccessException);
}
}
Когда я выполнить тест для выше методы я получаю сообщение об ошибке, как
org.springframework.jdbc.BadSqlGrammarException: StatementCallback; bad SQL grammar [INSERT INTO SELLER(SELLER_ID, FIRST_NAME, LAST_NAME, TIN_NO, COMPANY_NAME, COMPANY_LOGO, EPCH_NO, VAT_NO, CST_NO, COMMISSION, STATUS, APPROVED, CREATED_DTTM) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, CURRENT_TIMESTAMP)]; nested exception is org.postgresql.util.PSQLException: ERROR: syntax error at or near ","
Вот контекст конфигурация
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<constructor-arg ref="dataSource" />
</bean>
<bean id="transactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource" />
</bean>
<bean id="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="org.postgresql.Driver" />
<property name="url" value="jdbc:postgresql://localhost:5432/xxxx" />
<property name="username" value="postgres" />
<property name="password" value="xxxxx" />
</bean>
В вашем запросе есть '' APPROVED, CREATED_DTTM'', но с ошибкой '' CREATED_DTTM, MODIFIED_DTTM''. Я думаю, у вас разные запросы. – Kristiyan
Я обновил свой код ошибки. –
Я не очень хорошо знаком, но вы можете изменить CURRENT_TIMESTAMP с переменной из Java или попытаться использовать кавычки типа 'CURRENT_TIMESTAMP''? – Kristiyan