gpt4 book ai didi

java - HSQLDB 内存数据库 JDBC 模板查询失败

转载 作者:行者123 更新时间:2023-11-30 07:21:29 25 4
gpt4 key购买 nike

我有一个单元测试,它使用 JDBCTemplate 和内存数据库。我的 HSQLDB 设置是:

jdbc.driver.className=org.hsqldb.jdbcDriver
jdbc.url=jdbc\:hsqldb\:mem\:test;DB_CLOSE_DELAY\=-1
jdbc.username=sa
jdbc.password=

我正在创建一个表,然后在向其中插入新记录之前尝试通过 JDBCTemplate 检查其中是否存在任何数据。

我正在通过 JDBCTemplate 调用 JDBC 查询,如下所示:

String query = "select id from Person where id=?";
int isExist = jdbcTemplate.update(query, "1");

在我的配置 xml 中,我将数据源连接如下:

<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource" lazy-init="default" autowire="default">
<property name="driverClassName" value="${jdbc.driver.className}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
</bean>

<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource" ref="dataSource"/>
</bean>

我收到一条错误消息:

org.hsqldb.HsqlException : statement does not generate a row count

如果我在内存数据库中删除并实际连接到 Oracle 数据库但为了测试我需要在内存数据库中,则相同的代码可以工作。

你能帮忙吗?

谢谢

最佳答案

您应该使用JdbcTemplate.query 方法,update 方法用于插入/删除/更新语句。例如:

int isExist = jdbcTemplate.queryForInt(query, "1");

关于java - HSQLDB 内存数据库 JDBC 模板查询失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13380661/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com