我正试图用spring boot编写我的第一个spring批处理示例。我想在应用程序启动后立即在mysql中创建数据库。
我的pom中有以下依赖项
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>io.spring</groupId>
<artifactId>hello-world</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>helloWorld</name>
<description>Hello World for Spring Batch</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.3.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-batch</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<addResources>true</addResources>
</configuration>
</plugin>
</plugins>
</build>
</project>
和应用。属性具有以下配置
spring.datasource.url=jdbc:mysql://localhost:3306/batchjob?allowPublicKeyRetrieval=true&useSSL=false
spring.datasource.username=root
spring.datasource.password= abcd1234
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.schema=schema-mysql.sql
spring.batch.initialize-schema=always
但是当我开始应用程序时,它无法识别MySQL,并且在日志中它正在打印以下行
2019-03-10 14:32:01.381 INFO 48560 --- [ main] o.s.b.c.r.s.JobRepositoryFactoryBean : No database type set, using meta data indicating: HSQL
在mySql中,我缺少什么可以自动创建模式?
DDL脚本位于组织中。springframework。一批核心
包,所以你的Spring。数据源。模式
应为:
spring.datasource.schema=org/springframework/batch/core/schema-mysql.sql
您甚至可以忽略此属性,因为它将从数据源中自动检测到。
你应该加上:
反正可以禁用SQL,我只是想测试我的读写器和处理器工作正常。
我正在使用Spring Batch,我知道它可以自动创建元表。我不需要它们,我尝试了:或,我总是有这个错误:
问题内容: 我只是使用Spring Batch框架创建了一个批处理作业,但是我没有运行CREATE SQL的数据库特权。当我尝试运行批处理作业时,在框架尝试创建TABLE_BATCH_INSTANCE时遇到错误。我尝试禁用 但是我尝试后仍然遇到错误 无论如何都可以禁用SQL,我只想测试我的阅读器编写器和处理器是否正常工作。 问题答案: 使用Spring Boot 2.0,你可能需要以下代码:htt
我正在编写一个spring批处理应用程序,由需要按照特定顺序执行的不同作业组成。为此,我通过JobLauncher手动运行作业,并通过在属性文件中添加以下属性来禁用Spring批处理提供的自动启动特性:
我正在建立一个多模块的项目与Spring引导和批处理。 当前的目录结构为: 核心 网站 批处理 核心包含领域对象、存储库、服务。 web和批处理各自有自己的上下文,并用注释,我在执行时使用属性进行配置,例如 问题出现在包含核心类时,由于缺少存储库的bean定义,两个应用程序都不会启动,所以听起来组件扫描对核心模块不起作用。 我已经尝试了和),但没有成功。 有什么想法,我错过了什么,或者有没有更好的
我的Spring批处理应用程序有多个作业,但只有一个作业使用一些特定的Spring Boot自动配置特性: 使用spring-data-jpa自动配置为业务事务配置数据库的作业(不是Spring批处理管理) 根本不使用数据库的作业 我把这两个工作打包在同一个单位,因为从商业角度来看是有意义的。两个作业将一起工作,一个作业的输出将是另一个作业的输入。 运行第二个作业时是否可以禁用特定于数据库的自动配