Connect MySQL, Spring-Anwendung
Will ich mit MySQL-Datenbank eher als unter Verwendung der runtime-Datenbank wie hsqldb. Ich habe geklont dieses repository und es ist mit hsqldb als Datenbank.
Wie ich will, um zu lernen, wie die Verwendung einer relationalen Datenbank mit rest-basierte spring-Anwendung. So habe ich mir vorgenommen folgende änderungen pom.xml:
geändert pom.xml:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.springsource.restbucks</groupId>
<artifactId>restbucks</artifactId>
<packaging>war</packaging>
<version>1.0.0.BUILD-SNAPSHOT</version>
<name>Spring RESTBucks</name>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.1.5.RELEASE</version>
</parent>
<properties>
<spring-data-releasetrain.version>Evans-RC1</spring-data-releasetrain.version>
<tomcat.version>8.0.9</tomcat.version>
</properties>
<dependencies>
<!-- Spring Data REST -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-rest</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
<exclusions>
<exclusion>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
</dependency>
<!-- JDK 8 DateTime support for Hibernate -->
<dependency>
<groupId>org.jadira.usertype</groupId>
<artifactId>usertype.extended</artifactId>
<version>3.2.0.GA</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-jsr310</artifactId>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
</dependency>
<!-- Database >
<dependency>
<groupId>org.hsqldb</groupId>
<artifactId>hsqldb</artifactId>
<scope>runtime</scope>
</dependency -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!-- Misc -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx-events</artifactId>
<version>1.0.0.BUILD-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.14.4</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.jayway.jsonpath</groupId>
<artifactId>json-path</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
<repositories>
<repository>
<id>spring-libs-snapshot</id>
<url>http://repo.spring.io/libs-snapshot</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>spring-libs-snapshot</id>
<url>http://repo.spring.io/libs-snapshot</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>
</project>
und in der Anwendung.Eigenschaften (Feder-restbucks/src/main/resources/application.Eigenschaften), habe ich folgende änderungen:
# JPA
spring.jpa.show-sql=true
server.port=8080
spring.datasource.url=jdbc:mysql://localhost/restBucks
spring.datasource.driverClassName=com.mysql.jdbc.Driver
spring.datasource.username=root
spring.datasource.password=
aber ich bin vor über 15 Fehler wie:
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'orderInitializer' defined in file [/home/jimish/projects/spring_projects/spring/spring-restbucks/target/classes/org/springsource/restbucks/order/OrderInitializer.class]: Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [org.springsource.restbucks.order.OrderInitializer]: Constructor threw exception; nested exception is org.springframework.dao.InvalidDataAccessResourceUsageException: could not extract ResultSet; SQL [n/a]; nested exception is org.hibernate.exception.SQLGrammarException: could not extract ResultSet
Also wenn jemand vorschlagen kann, Weg für, wie die Verbindung von mysql zu spring-Anwendung, die wäre toll.
Danke.
- Stellen Sie sicher, dass Ihre Einstellungen richtig sind, ob die Datenbank existiert und ist aktiv und Sie können eine Verbindung mit diesem Benutzer. Auch stellen Sie sicher, dass Sie gewählt haben der richtige Dialekt für Hibernate sonst könnten Sie am Ende mit dem falschen SQL .
- hey, meine Datenbank vorhanden ist und das laufen... Aber ich weiß nicht, wie zu wählen Dialekt für hibernate. können Sie vorschlagen, etwas nützliches zu tun?
- Ich empfehle ein Lesen der Dokumentation, statt nur daran herum zu hacken. Aber die Einstellung der
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect
sollte den trick tun. Vielleicht möchten Sie auch hinzufügen, das volle stack-trace, um Ihre post.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nur die folgende Konfiguration in Ihrer Anwendung.properties in classpath und es funktioniert wie ein Charme:
Darlegung auf @M. Deinum Kommentar... müssen Sie angeben, die JPA-Konfiguration Informationen, wie die Frühjahr RestBucks App ist mit Spring Data JPA.
Hinzufügen von standard-JPA-Eigenschaften und unter Angabe der Datenbank-Plattform (Die Gemeinsame Anwendung Eigenschaften) sollte erhalten Sie Ihre JPA-Verbindung.
Datenbank-Server-IP-Adresse, Port-Nummer und DB-Name
Frühjahr.datasource.url=jdbc:mysql://localhost/Beispiel
Datenbank-Server Benutzername
Frühjahr.datasource.Benutzername=root
Datenbank-Server Passwort
Frühjahr.datasource.Passwort=root123
Update-Datenbank auf jedem Server startet
Frühjahr.jpa.hibernate.ddl-auto=update
Fügen Sie MySQL Connector/J, um die classpath:
Dies ist ein Beispiel der Datei Anwendung.Eigenschaften innen Spring-basierten Anwendung:
Können Sie überprüfen Sie Ihre pom-Datei, und stellen Sie sicher, dass mindestens unterhalb der Gläser sind verfügbar