Взгляните на эту страницу из документации Play. Он говорит:
За исключением базы данных h2 в памяти, полезной в основном в режиме разработки, Play 2.0 не предоставляет никаких драйверов базы данных. Следовательно, для развертывания в производственной среде вам нужно будет добавить драйвер базы данных в качестве зависимости приложения.
Например, если вы используете MySQL5, вам нужно добавить зависимость для коннектора:
val appDependencies = Seq(
...
"mysql" % "mysql-connector-java" % "5.1.18"
...
)
SBT скачает за вас драйвер. Вам также следует ознакомиться с разделом об управлении зависимостями .
Для подключения к MySQL вам также потребуется изменить некоторые настройки в вашем application.conf
:
db.default.driver=com.mysql.jdbc.Driver
db.default.url="mysql://root:secret@localhost/myDatabase"
Как писал Карстен, это можно найти в документации, однако вот краткое изложение:
убедитесь, что у вас настроена зависимость в
/project/Build.scala
val appDependencies = Seq( // Add your project dependencies here, "mysql" % "mysql-connector-java" % "5.1.18" )
Добавьте правильную конфигурацию БД (замените конфигурацию H2 по умолчанию) в
/conf/application.conf
:(не удаляйте кодировку из URL):
db.default.driver=com.mysql.jdbc.Driver db.default.url="jdbc:mysql://localhost/your_db_name?characterEncoding=UTF-8" db.default.user=your_login db.default.password=your_pass
в том же файле найдите и убедитесь, что эта строка НЕ прокомментирована:
ebean.default="models.*"
Вот и все, перезапустите приложение (или запустите в режиме разработки), затем оно создаст DDL и попросит вас применить его.
источник
localhost
может потребоваться заменить их на127.0.0.1
. В specifict условиях, используя MariaDB (Оракул свободного падения в замене для MySQL) от MacPorts мне пришлось закомментировать скип сети вmy.cnf
и использовать IP - адрес вместоlocalhost
иметь Play успешно подключиться.Я использую play 2.2.0, и мне просто нужно было добавить следующую строку в build.sbt в корневую папку проекта.
"mysql" % "mysql-connector-java" % "5.1.27"
И игра автоматически скачивает драйвер. Похоже, Build.scala для этого больше не нужен. Изменения в application.conf должны применяться, как упоминали вышеупомянутые комментаторы.
источник
libraryDependencies ++= Seq(jdbc,anorm,cache,"mysql" % "mysql-connector-java" % "5.1.27")
Большинство методов доступа к базе данных mysql, с которыми я столкнулся, не объясняют, как установить соединение и получить данные из модели. В своем приложении я использую как mongoDB, так и внешнюю базу данных mysql. Итак, вот как я поступал (со стороны mysql):
Для Play 2.3.3 в файле build.sbt добавьте строку, специфичную для mysql, в libraryDependencies:
libraryDependencies ++= Seq( "mysql" % "mysql-connector-java" % "5.1.27" )
В файле /conf/application.conf добавьте следующее:
db.myotherdb.driver = com.mysql.jdbc.Driver db.myotherdb.url = "jdbc:mysql://xxx.xxx.xxx.xxx/NameOfOtherDB?characterEncoding=UTF-8" db.myotherdb.user = MyOtherDbUSername db.myotherdb.password = MyOtherDbPass
Вы можете заменить "myotherdb" на "default", если вы хотите использовать базу данных по умолчанию или любое другое имя, которое хотите использовать. Замените «xxx.xxx.xxx.xxx» IP-адресом сервера, на котором расположена ваша база данных (в случае внешней базы данных) или localhost (или 127.0.0.1) для локальной базы данных. Замените «NameOfOtherDB» именем базы данных, которую вы хотите использовать, «MyOtherDbUSername» своим именем пользователя базы данных и «MyOtherDbPass» своим паролем базы данных.
Внутри вашей модели (/app/models/MyModel.scala) добавьте это:
val connection = DB.getConnection("myotherdb")
Создайте оператор, запрос и выполните его:
val statement = connection.createStatement(ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY) val query = "SELECT * FROM myTableName" val resultset = statement.executeQuery(query)
Затем вы можете продолжить все, что захотите, с полученными данными. Например:
while (resultset.next()) { resultset.getString("columnName") }
Где «columnName» - это имя столбца / поля таблицы БД, которое вы хотите получить.
И последнее, но не менее важное: я хотел бы отметить, что вы можете закрыть соединение, вызвав close ()
источник
Я застрял в моей конфигурации MySQL, пока не нашел это.
Самые важные вещи взяты из ответа @biesior:
/project/Build.scala
)play dependencies
чтобы разрешить недавно добавленную зависимость MySQL Connector / Jebean.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
Это спасло мне день.
источник
Для игры 2.3.1 выполните следующие действия.
1) Добавьте соединитель MySQL / J в зависимость проекта (которая находится внутри /project/build.sbt)
libraryDependencies ++= Seq( javaJdbc, javaEbean, "mysql" % "mysql-connector-java" % "5.1.29"
2) Раскомментируйте строку конфигурации ebean по умолчанию ebean.default = "models. *"
3) Настройте базу данных MySQL правильно с правильной кодировкой символов
db.default.driver=com.mysql.jdbc.Driver //this is com. and not org. db.default.url="jdbc:mysql://127.0.0.1/test?characterEncoding=UTF-8" db.default.user=playuser db.default.pass=playuser
4) Мост Имп. Выполните команду перезагрузки в консоли.
источник
java.sql.SQLException: No suitable driver found for mysql://...
.sudo apt-get install mysql-client; sudo apt-get install libmysql-java
put,export CLASSPATH=/usr/share/java/mysql-connector-java.jar
а также добавил/etc/environment
(как описано на help.ubuntu.com/community/JDBCAndMySQL ). Это все еще не работает.Играть в 2.4.3 и MYSQL 5.7.9
Я смог заставить это работать, собрав воедино кусочки информации из всех предыдущих ответов. Итак, вот еще один, который, надеюсь, более актуален или полезен для тех, кто работает в аналогичной среде.
Сведения о среде: ( это то, что я использую )
appication.conf
db.default.driver=com.mysql.jdbc.Driver db.default.url="jdbc:mysql://localhost:3306/testSchema?characterEncoding=UTF-8" db.default.user=yourDBUserName db.default.password=yourDBUserPass
Заметка:
3306
пример, потому что это обычно значение по умолчанию для MYSQL.build.sbt
Добавьте эту строку ниже в свой файл build.sbt. Это должно быть после
libraryDependencies ++= Seq()
объявления.libraryDependencies += "mysql" % "mysql-connector-java" % "5.1.36"
в заключение
activator reload
источник
Для воспроизведения Java-проекта с использованием SBT
Измените libraryDependency на llok, как это в build.sbt
libraryDependencies ++= Seq( javaJdbc, javaEbean, cache, javaWs, "mysql" % "mysql-connector-java" % "5.1.27" )
Запустите свой проект с помощью «активатора запуска»
Воспроизведение отключит необходимый разъем jdbc.
источник
У меня была такая же проблема в последней версии игрового фреймворка 2.4.x с активатором 1.3.6.
Вот шаги. Я выполнил шаги, описанные здесь https://www.playframework.com/documentation/2.4.x/JavaDatabase
Вот мой
application.conf
Вот это
build.sbt
plugins.sbt
Вот важный шаг.
источник
Для меня это работа, добавьте эту строку ниже в свои зависимости:
"mysql" % "mysql-connector-java" % "5.1.36"
Вот код:
import java.sql.Connection val driver = "com.mysql.jdbc.Driver" val url = "jdbc:mysql://localhost/world" val username = "root" val password = "root" var connection: Connection = null try { // make the connection Class.forName(driver) connection = DriverManager.getConnection(url, username, password) // create the statement, and run the select query val statement = connection.createStatement() val resultSet = statement.executeQuery("SELECT id , name FROM bar") val sql: SqlQuery = SQL("select * from products order by name asc") while (resultSet.next()) { val id = resultSet.getString("id") val name = resultSet.getString("name") println(id, name) } } catch { case e: Exception => println("exception caught: " + e); } connection.close()
источник