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");
私のconfigxmlでは、dataSourceを次のように配線しました。
<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データベースに接続した場合も同じコードが機能しますが、テストの場合はメモリデータベースで必要です。
手伝ってもらえますか?
ありがとう