Как создать базу данных с пятном - PullRequest
0 голосов
/ 22 октября 2018

Я пытался создать базу данных с помощью следующего кода

Часть моих зависимостей сборки

scalaVersion := "2.12.6"

libraryDependencies += "com.typesafe.play" %% "play-slick" % "3.0.0"
libraryDependencies += "mysql" % "mysql-connector-java" % "8.0.12"

_

val db = Database.forURL("jdbc:mysql://localhost", "user", "password")
val dbName = "database1"
Await.result(db.run(sqlu"CREATE DATABASE $dbName"), 1.second)

У пользователя есть все привилегии на *.*

Но выдает исключение

java.util.NoSuchElementException: Invoker.first
   at slick.jdbc.Invoker.first(Invoker.scala:34)
   at slick.jdbc.Invoker.first$(Invoker.scala:30)
   at slick.jdbc.StatementInvoker.first(StatementInvoker.scala:16)
   at slick.jdbc.StreamingInvokerAction$HeadAction.run(StreamingInvokerAction.scala:52)
   at slick.jdbc.StreamingInvokerAction$HeadAction.run(StreamingInvokerAction.scala:51)
   at slick.basic.BasicBackend$DatabaseDef$$anon$2.liftedTree1$1(BasicBackend.scala:240)
   at slick.basic.BasicBackend$DatabaseDef$$anon$2.run(BasicBackend.scala:240) java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1135)
 at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
 at java.base/java.lang.Thread.run(Thread.java:844)

Скажите, пожалуйста, как создать базу данных без исключения.Я хочу создать одну базу данных для каждого пользователя, поэтому не могу написать имя базы данных в application.conf

1 Ответ

0 голосов
/ 22 октября 2018

Я бы посоветовал вам пройти через https://www.playframework.com/documentation/2.6.x/PlaySlick.Задайте конфигурацию базы данных в application.conf правильно

slick.dbs.default.driver = "slick.driver.MySQLDriver$"
 slick.dbs.default.db.driver = "com.mysql.jdbc.Driver"
 slick.dbs.default.db.url = "jdbc:mysql://localhost/demoDBName"
 slick.dbs.default.db.user = "root user name"
 slick.dbs.default.db.password = ""

Это создаст demoDBName при запуске приложения, если оно не существует.Надеюсь, поможет.

...