我是春季批处理和批处理管理员的新手。我陷入了一个我想要使用多个数据源的场景。即一个用于批处理元数据和业务模式(应用程序表)。
我在batch-mysql.properties文件中使用下面的代码。
对于批处理元数据表
batch.jdbc.driver=com.mysql.jdbc.Driver
batch.jdbc.url=jdbc:mysql://localhost:3306/batch
batch.jdbc.user=root
batch.jdbc.password=root
batch.jdbc.testWhileIdle=true
batch.jdbc.validationQuery=SELECT 1
batch.drop.script=classpath:/org/springframework/batch/core/schema-drop-mysql.sql
batch.schema.script=classpath:/org/springframework/batch/core/schema-mysql.sql
batch.business.schema.script=classpath*:business-schema-mysql.sql
对于应用程序架构
db.driver=com.mysql.jdbc.Driver
db.url=jdbc:mysql://localhost:3306/applicationschema
db.user=root
db.password=root
如果我删除下面的代码行 batch.business.schema.script =类路径*:业务架构mysql.sql
然后我得到一个异常,上面的属性找不到。 如果保持原样那么它就是在批量数据架构模式中创建应用程序表。
答案 0 :(得分:0)
只是不向属性batch.business.schema.script
提供任何值。试着离开它,如下所示:
batch.business.schema.script =
此外,如果您不想在每次启动应用程序时删除并创建批处理元表,则应在批处理属性文件中设置batch.data.source.init=false
。
编辑:这就是我的batch-oracle.properties
文件的样子:
batch.database.incrementer.class=org.springframework.jdbc.support.incrementer.OracleSequenceMaxValueIncrementer
batch.isolationlevel=READ_COMMITTED
batch.business.schema.script=
batch.data.source.init=false
batch.job.service.reaper.interval=6000
batch.schema.script=classpath:/org/springframework/batch/core/schema-drop-oracle10g.sql
batch.jdbc.url=jdbc:oracle:thin:@localhost:1521:mydb
batch.table.prefix=BATCH_
batch.lob.handler.class=org.springframework.jdbc.support.lob.DefaultLobHandler
batch.verify.cursor.position=true
batch.jdbc.validationQuery=SELECT 1 FROM dual
batch.jdbc.password=mypassword
batch.jdbc.testWhileIdle=false
batch.jdbc.user=user
batch.jdbc.pool.size=5
batch.drop.script=classpath:/org/springframework/batch/core/schema-drop-oracle10g.sql