当前位置: 首页 > 知识库问答 >
问题:

在Spring Batch中通过调用.sql文件自动创建表?

訾高飞
2023-03-14

我跟踪了许多链接,如Spring Batch Framework-auto create Batch Table和https://docs.Spring.io/spring-boot/docs/2.0.0.m7/reference/htmlsingle/#howto-initialize-a-spring-batch-database,但这并不能满足我的要求

在Spring Boot2.0中,我们如何调用sql文件(手动创建并拥有所有模式细节),以便Spring Batch可以为我们手动创建它,如果模式已经存在,则跳过执行?

<!-- Create meta-tables -->
<jdbc:initialize-database data-source="dataSource">
        <jdbc:script location="classpath:hsqldb/initial-query.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>

我想做1。如果模式已经存在,那么不要创建任何表2。如果模式不存在,则创建表

项目结构

DROP TABLE IF EXISTS report;

CREATE TABLE report  (
    id INT NOT NULL PRIMARY KEY,
    date DATETIME,
    impression BIGINT,
    clicks INT,
    earning DECIMAL(12,4)
  )ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1;

Application.Properties

# Data Source
spring.datasource.url=jdbc:mysql://localhost:3306/spring_batch
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.username=root
spring.datasource.password=root
spring.jpa.hibernate.ddl-auto=update


# SPRING BATCH (BatchProperties)
# Database schema initialization mode.
spring.batch.initialize-schema=always

# Execute all Spring Batch jobs in the context on startup.
#spring.batch.job.enabled=false

# Path to the SQL file to use to initialize the database schema.
spring.batch.schema=classpath:schema-all.sql

共有1个答案

董奇思
2023-03-14

我观察到的是-

如果我在下面启用

initialize-schema=always

 +------------------------------+
    | Tables_in_test               |
    +------------------------------+
    | batch_job_execution          |
    | batch_job_execution_context  |
    | batch_job_execution_params   |
    | batch_job_execution_seq      |
    | batch_job_instance           |
    | batch_job_seq                |
    | batch_step_execution         |
    | batch_step_execution_context |
    | batch_step_execution_seq     |
 类似资料:
  • 问题内容: 如何自动创建pyi文件的样板代码? 我想创建一个保华集团的类型描述暗示文件pep484其中包含了所有的方法名。 我不要魔术。我要在自动创建文件后添加类型信息。 我想避免复制+粘贴工作。 目标:在PyCharm for Python2中键入提示。 问题答案: 就我而言,PyCharm中没有此类直接工具。但是,有用于此目的的第三方工具。 MyPy 是的,我想任何想在Python中使用编译时

  • 我有几个存储过程要作为初始设置执行。因此,我所做的是将该存储过程放置在中,并设置。 但是在我的应用程序启动时,该应用程序由于com.mysql.jdbc.exceptions.jdbc4.mysqlSyntaxerRoreXception而失败。这意味着它不能理解该过程的语法,但是可以在表单上手动执行相同的过程,不会有任何问题。那么如何通过执行它呢 data.sql- 错误- 原因:org.spr

  • 所有上传的数据必须包含名称列。 上传数据指将已整理好的表格,直接上传到地图者中。具体参考格式可以在“数据类型”下方,下载EXCEL样例文件。 注意:点线面的模版不完全相同,请选择好数据类型后再下载。 点数据分为两种情况 1.没有坐标,只有地址信息 可以通过系统进行自动定位获取坐标,此种格式要求表格必须包含“地址”列,具体参考“样例一”。系统会使用地址列进行定位。地址列越详细定位越准确。 注意:请在

  • 问题内容: 现在,我有一个批处理文件,其中包含使用svn和调用maven’clean install’更新项目的命令。如何在詹金斯(Jenkins)中创建一些工作来进行类似的操作?我应该将其写入ant文件(对不起,如果它是一个愚蠢的主意,我刚刚听说过它,但是我不知道它到底是什么,该怎么办)还是还有其他方法? 谢谢 问题答案: 就像建议的arghtype一样,您需要使用Jenkin自己的源代码管理,

  • 问题内容: 我已经使用以下代码获取wp-option值。 现在我想使用上述值创建一个.sql文件。如何使用这些值创建.sql文件。 问题答案: 您必须生成create table并手动插入语句。这里有一篇很好的文章,其中包含用PHP编写的备份脚本。 http://davidwalsh.name/backup-mysql-database- php

  • 问题内容: 我想知道是否可以使用其API在Jenkins中创建新用户。我可以创建作业,但Jenkins的API文档与用户创建没有任何关系。 实际上,我必须先创建一个新用户,然后为该用户创建一个新作业,所有这些工作均使用API​​。 问题答案: 没错,没有用于添加用户的显式CLI命令。但是您可以为此使用groovy脚本(使用CLI执行)。 详细信息取决于您的Jenkins的配置方式。例如,如果您的J