当前位置: 首页 > 知识库问答 >
问题:

在PostgreSQL中插入查询

赖明煦
2023-03-14

我是新使用PostgreSQL的,我正在尝试从spring jdbc插入值。这是我的问题

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);
    }
}

当我为上述方法执行测试用例时,我得到的错误如下:

组织。springframework。jdbc。BadSqlGrammarException:StatementCallback;错误的SQL语法[插入卖家(卖家ID、名字、姓氏、锡号、公司名称、公司标识、EPCH号、VAT号、CST号、佣金、状态、已批准、创建的DTTM)值(?、、、、、、、、、、、、、、、、、、、、当前时间戳)];嵌套的异常是org。postgresql。util。PSQLException:错误:语法错误位于或接近“,”

这里是上下文配置

<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>

共有1个答案

顾磊
2023-03-14

我看不出字符串变量本身有current_timestamp的原因。您可能想要将时间戳元素替换为?在ADD_SELLER变量中,并在jdbcTemplate.update(...)调用中使用CURRENT_TIMESTAMP作为参数

 类似资料:
  • 问题内容: 我有这3张表。 我创建了用于创建订单的表单,其中填写了订单(日期)的信息以及完成订单的人。在我的表单中,有一个表格可供我选择员工并获取其ID。我想知道是否可以通过一个查询将表Order和completelyBy插入表中。 使用两个插入内容或使用答案中的代码之间在有效性上有什么区别吗? 问题答案: 这可以使用修改公共表表达式的数据来完成: 第一部分插入表中并返回插入的ID。然后,第二部分

  • 问题内容: 我在使用SQL时遇到了一些问题。我正在尝试在表中插入2个值。 那就是我的查询:INSERT INTO tableinfo(table,date)VALUES(’Sell’,’August‘24’); 但它不起作用。我有类似的东西: 这是非常基本的,所以我不知道为什么它不起作用:( PostgreSQL 9.2.4 问题答案: 问题不是出自INSERT,而是您要发出的无效SQL。首先尝试

  • 问题内容: 几个月前,我从关于Stack Overflow的答案中学到了如何使用以下语法在MySQL中一次执行多个更新: 我现在已经切换到PostgreSQL,显然这是不正确的。它指的是所有正确的表,因此我认为这是使用不同关键字的问题,但是我不确定在PostgreSQL文档的哪个地方覆盖了这个问题。 为了澄清,我想插入几件事,如果它们已经存在,请对其进行更新。 问题答案: 自9.5版起的Postg

  • 如何插入双引号 2.创建要插入该表的存储过程。 3.使用此查询插入的数据: 它的作品!!! 4.以下组合全部失败。当双引号变成单引号时,反之亦然 如何使用存储过程插入上述数据??

  • 问题内容: 我可以在SQL Server 2008的Function中编写插入查询吗?如果尝试,会在函数中收到无效使用副作用运算符’INSERT’的错误。请帮帮我。但我希望它是一个函数,而不是存储过程 问题答案: 从这里引用: 用户定义的函数不能用于修改基表信息。DML语句INSERT,UPDATE和DELETE不能在基表上使用。 因此,您无法在函数中执行INSERT。 您可能想解释为什么不想使用

  • 现在我有了hibernate的工作批插入(“hibernate.jdbc.batch_size=50”),但据我所知,hibernate会批量生成单个插入。我知道我可以告诉我的db驱动程序为每批插入创建多行插入,以使用rewriteBatchedStatements:jdbc:p加快性能ostgresql://localhost:5432/mydb?rewriteBatchedStatements