首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >HSQLDB内存数据库JDBC模板查询失败

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

Stack Overflow用户
提问于 2012-11-14 22:25:52
回答 1查看 2.9K关注 0票数 2

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

代码语言:javascript
复制
jdbc.driver.className=org.hsqldb.jdbcDriver
jdbc.url=jdbc\:hsqldb\:mem\:test;DB_CLOSE_DELAY\=-1
jdbc.username=sa
jdbc.password=

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

我通过JDBCTemplate调用JDBC query,如下所示:

代码语言:javascript
复制
String query = "select id from Person where id=?";
int isExist = jdbcTemplate.update(query, "1");

在我的配置xml中,我按如下方式连接了dataSource:

代码语言:javascript
复制
<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>

我收到了一个错误,内容是:

代码语言:javascript
复制
org.hsqldb.HsqlException : statement does not generate a row count

如果我在内存数据库中删除,并实际连接到Oracle数据库,但对于需要在内存数据库中进行的测试,同样的代码也可以工作。

你能帮帮忙吗?

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-11-14 23:15:07

您应该使用JdbcTemplate.query方法,update方法用于insert/delete/update语句。例如:

代码语言:javascript
复制
int isExist = jdbcTemplate.queryForInt(query, "1");
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13380661

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档