我遵循本指南從春天https://spring.io/guides/gs/batch-processing/。如何使春天使用mysql而不是hsql
一切正常,只要我使用hsql,但我想切換到MySQL。問題在於spring總是試圖啓動並使用hsql實例。
以下是代碼:
application.properties在hello.ressources:在hello.ressources
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="dataSource" name="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://xxx:3306/xxx" />
<property name="username" value="user" />
<property name="password" value="pass" />
</bean>
</beans>
在我BatchConfiguration類
spring.datasource.url=jdbc:mysql://xxx:3306/xxx
spring.datasource.username=user
spring.datasource.password=pass
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
datasource.xml,有一個@Autowired
屬性
@Autowired
public DataSource dataSource;
Intelij將其顯示爲連接到datasource.xml
。
然而,當我運行應用程序它第一次登錄
o.s.j.d.e.EmbeddedDatabaseFactory : Starting embedded database: url='jdbc:hsqldb:mem:testdb', username='sa'
不應該出現,然後拋出一個錯誤說:
PreparedStatementCallback;錯誤的SQL語法[INSERT INTO people(first_name,last_name)VALUES(?,?)];嵌套的例外是java.sql.SQLSyntaxErrorException:用戶缺少特權或找不到對象:以人
我已經改變了架構all.sql到架構mysql.sql,改變了代碼
DROP TABLE IF EXISTS people;
CREATE TABLE people (
person_id BIGINT NOT NULL PRIMARY KEY AUTO_INCREMENT ,
first_name VARCHAR(20),
last_name VARCHAR(20)
);
在我的build.gradle我已經加入
classpath 'mysql:mysql-connector-java:5.1.6'
到構建的依賴性,並從編譯DEPS改變了HSQL部分
compile("mysql:mysql-connector-java:5.1.6")
如何在這裏使用mysql並禁用hsql?
編輯:
我已刪除datasource.xml。
這是的build.gradle:
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath("org.springframework.boot:spring-boot-gradle-plugin:1.3.5.RELEASE")
classpath 'mysql:mysql-connector-java:5.1.6'
}
}
apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'idea'
apply plugin: 'spring-boot'
jar {
baseName = 'gs-batch-processing'
version = '0.1.0'
}
repositories {
mavenCentral()
}
sourceCompatibility = 1.8
targetCompatibility = 1.8
dependencies {
compile("org.springframework.boot:spring-boot-starter-batch")
compile("mysql:mysql-connector-java:5.1.6")
testCompile("junit:junit")
}
task wrapper(type: Wrapper) {
gradleVersion = '2.3'
}
@Jarrodroberson你投票結束的這個問題是關於一個缺課的問題,我的問題不是。 –
Imo,這個問題不是鏈接的問題的重複。當然,他們都將從HSQL切換到MySQL,但這是一個Spring Boot項目,默認情況下,Boot將嵌入式HSQL配置爲其數據庫。這個問題可能有重複,但鏈接的問題絕對不是一個 –
你有一個想法如何解決這個@AliDehghani –