繁体   English   中英

在所有Spring Batch步骤中共享HSQLDB

[英]Share HSQLDB across all Spring Batch Steps

我有一个带有HSQLDB的Spring Batch应用程序。 我注意到数据库在我的作业的每个步骤之后都已删除并重新初始化,但我希望它在作业的所有步骤中都保持不变。

这是我的数据源配置:

<jdbc:initialize-database data-source="dataSource">
    <jdbc:script location="classpath:rubrica.sql" />
    <jdbc:script location="org/springframework/batch/core/schema-drop-hsqldb.sql" />
    <jdbc:script location="org/springframework/batch/core/schema-hsqldb.sql" />
</jdbc:initialize-database>

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" >
    <property name="driverClassName" value="org.hsqldb.jdbc.JDBCDriver" />
    <property name="url" value="jdbc:hsqldb:file:C:\Users\U390902\Documents\workspace-sts-3.8.4.RELEASE\ixpg0-statsloader\src\main\resources\input\TestDataBase;user=sa;password=sa" />
</bean>

基本上我有这个逻辑步骤结构

<job>
<step 1> Read a flat file and write it in the HSQL DB </step 1>
<step 2> Read a CSV file and join it with the HSQL DB</step 1>
</job>

但是分析日志,我发现使用提供的sql脚本重新初始化了数据库。 这是日志:

INSERT INTO EMPLOYEE VALUES('123456','PIPPO','PLUTO')
COMMIT
/*C4*/SET SCHEMA PUBLIC
DISCONNECT
/*C5*/SET SCHEMA PUBLIC
DROP TABLE EMPLOYEE IF EXISTS
CREATE TABLE EMPLOYEE ( ID VARCHAR(6), FIRSTNAME VARCHAR(100), LASTNAME VARCHAR(100) ) 

我的目标是在所有步骤之间共享数据库。

谢谢大家(如果有的话)给我写评论。

在这种情况下,问题是我在下一步中重新初始化了应用程序上下文,因此Db被重新初始化了。

使用ApplicationContextAware接口可以解决此问题。

如果您需要更多详细信息,请给我评论。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM