Schauen Sie sich diese Seite aus der Play-Dokumentation an. Es sagt:
Abgesehen von der h2-In-Memory-Datenbank, die hauptsächlich im Entwicklungsmodus nützlich ist, bietet Play 2.0 keine Datenbanktreiber. Für die Bereitstellung in der Produktion müssen Sie daher Ihren Datenbanktreiber als Anwendungsabhängigkeit hinzufügen.
Wenn Sie beispielsweise MySQL5 verwenden, müssen Sie eine Abhängigkeit für den Connector hinzufügen:
val appDependencies = Seq(
// Add your project dependencies here,
...
"mysql" % "mysql-connector-java" % "5.1.18"
...
)
SBT lädt den Treiber für Sie herunter. Lesen Sie auch den Abschnitt zum Verwalten von Abhängigkeiten .
Um eine Verbindung zu MySQL herzustellen, müssen Sie außerdem einige Einstellungen ändern in application.conf
:
db.default.driver=com.mysql.jdbc.Driver
db.default.url="mysql://root:secret@localhost/myDatabase"
Wie Carsten schrieb, kann es aus der Dokumentation abgerufen werden, aber hier ist eine Zusammenfassung:
Stellen Sie sicher, dass Sie die Abhängigkeit in konfiguriert haben
/project/Build.scala
Fügen Sie eine richtige Konfiguration der Datenbank hinzu (ersetzen Sie die Standard-H2-Konfiguration) in
/conf/application.conf
:(Codierung nicht von URL entfernen):
Suchen Sie in derselben Datei und stellen Sie sicher, dass diese Zeile NICHT kommentiert ist:
Das ist alles, starten Sie Ihre App neu (oder führen Sie sie im Entwicklungsmodus aus), dann wird eine DDL erstellt und Sie werden aufgefordert, sie anzuwenden.
quelle
localhost
möglicherweise durch diese ersetzt werden muss127.0.0.1
. In specifict Bedingungen, mit MariaDB (ein Oracle-freien Fall Ersatz für MySQL) von MacPorts musste ich kommentieren Sie überspringen-Vernetzung inmy.cnf
und die IP - Adresse verwenden , anstattlocalhost
zu haben erfolgreich Connect zu spielen.Ich verwende Play 2.2.0 und musste nur die folgende Zeile zu build.sbt im Stammordner des Projekts hinzufügen.
Und play lädt automatisch den Treiber herunter. Es scheint, dass Build.scala dafür nicht mehr benötigt wird. Änderungen an application.conf sollten angewendet werden, wie die oben genannten Kommentatoren erwähnt haben.
quelle
libraryDependencies ++= Seq(jdbc,anorm,cache,"mysql" % "mysql-connector-java" % "5.1.27")
Die meisten Methoden für den Zugriff auf eine MySQL-Datenbank, auf die ich gestoßen bin, erklären nicht, wie eine Verbindung hergestellt und Daten aus dem Modell abgerufen werden. In meiner Anwendung verwende ich sowohl mongoDB als auch eine externe MySQL-Datenbank. Also hier ist, wie ich (die MySQL-Seite) Dinge gemacht habe:
Fügen Sie für Play 2.3.3 in der Datei build.sbt die mysql-spezifische Zeile in die libraryDependencies ein:
Fügen Sie in der Datei /conf/application.conf Folgendes hinzu:
Sie können "myotherdb" durch "default" ersetzen, falls Sie die Standarddatenbank oder einen anderen Namen verwenden möchten, den Sie verwenden möchten. Ersetzen Sie "xxx.xxx.xxx.xxx" durch die IP-Adresse des Servers, auf dem sich Ihre Datenbank befindet (bei einer externen Datenbank), oder durch localhost (oder 127.0.0.1) für die lokale Datenbank. Ersetzen Sie "NameOfOtherDB" durch den Namen der Datenbank, die Sie verwenden möchten, "MyOtherDbUSername" durch Ihren Datenbankbenutzernamen und "MyOtherDbPass" durch Ihr Datenbankkennwort.
Fügen Sie in Ihrem Modell (/app/models/MyModel.scala) Folgendes hinzu:
Erstellen Sie die Anweisung, die Abfrage und führen Sie sie aus:
Anschließend können Sie mit den abgerufenen Daten fortfahren. Beispielsweise:
Dabei ist "columnName" der Name der DB-Tabellenspalte / des DB-Tabellens, die Sie abrufen möchten.
Zu guter Letzt möchte ich darauf hinweisen, dass Sie die Verbindung möglicherweise schließen möchten, indem Sie close () aufrufen.
quelle
Ich blieb bei meiner MySQL-Konfiguration hängen, bis ich diese fand.
Die wichtigsten Dinge aus @biesior Antwort:
/project/Build.scala
).play dependencies
nach dem die neu hinzugefügte Abhängigkeit vom MySQL-Connector / J ausebean.default="models.*"
db.default.driver=com.mysql.jdbc.Driver db.default.url="jdbc:mysql://www.sample.com:3306/test?characterEncoding=UTF-8" db.default.user=playuser db.default.pass=playuser
Es hat meinen Tag gerettet.
quelle
Zum Spielen 2.3.1Befolgen Sie Schritte.
1) Fügen Sie MySQL Connector / J in die Projektabhängigkeit ein (die sich in /project/build.sbt befindet).
2) Standardmäßige ebean-Konfigurationszeile auskommentieren ebean.default = "models. *"
3) Konfigurieren Sie die MySQL-Datenbank korrekt mit der richtigen Zeichencodierung
4) Die meisten Imp. Führen Sie einen Befehl zum erneuten Laden in der Konsole aus.
quelle
java.sql.SQLException: No suitable driver found for mysql://...
.sudo apt-get install mysql-client; sudo apt-get install libmysql-java
put installiertexport CLASSPATH=/usr/share/java/mysql-connector-java.jar
und auch hinzugefügt/etc/environment
(wie unter help.ubuntu.com/community/JDBCAndMySQL beschrieben ). Es funktioniert immer noch nicht.Spielen Sie 2.4.3 & MYSQL 5.7.9
Ich konnte dies zum Laufen bringen, indem ich Informationen aus allen vorherigen Antworten zusammensetzte. Hier ist also eine andere, die hoffentlich aktueller oder nützlicher für diejenigen mit einer ähnlichen Umgebung ist.
Umgebungsdetails: ( das ist was ich benutze )
appication.conf
Hinweis:
3306
das Beispiel eingefügt, da dies normalerweise die Standardeinstellung für MYSQL ist.build.sbt
Fügen Sie diese Zeile unten zu Ihrer build.sbt-Datei hinzu. Dies sollte nach der
libraryDependencies ++= Seq()
Erklärung erfolgen.Schließlich
activator reload
quelle
Zum Spielen von Java-Projekten mit SBT
Ändern Sie die libraryDependency in "build.sbt" so.
Führen Sie Ihr Projekt mit "Activator Run" aus.
Bei der Wiedergabe wird der erforderliche JDBC-Anschluss heruntergefahren.
quelle
Ich hatte das gleiche Problem in der neuesten Version 2.4.x mit Activator 1.3.6.
Hier sind die Schritte. Ich habe die hier beschriebenen Schritte befolgt https://www.playframework.com/documentation/2.4.x/JavaDatabase
Hier ist mein
application.conf
Hier ist
build.sbt
plugins.sbt
Hier ist der wichtige Schritt.
quelle
Fügen Sie für mich diese Arbeit diese folgende Zeile in Ihre Abhängigkeiten ein:
Hier ist der Code:
quelle