Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Can';t使Scala、Slick和MySQL协同工作_Mysql_Scala_Slick - Fatal编程技术网

Can';t使Scala、Slick和MySQL协同工作

Can';t使Scala、Slick和MySQL协同工作,mysql,scala,slick,Mysql,Scala,Slick,我试着让这三个一起工作,但做不到。缺乏流畅的文档。我为Typesafe配置设置了application.conf,如下所示: mysql = { url = "jdbc:mysql://localhost/slickdb" slick.driver=scala.slick.driver.MySQLDriver driver=com.mysql.cj.jdbc.Driver properties = { user = root password = null }

我试着让这三个一起工作,但做不到。缺乏流畅的文档。我为Typesafe配置设置了application.conf,如下所示:

mysql = {
  url = "jdbc:mysql://localhost/slickdb"
  slick.driver=scala.slick.driver.MySQLDriver
  driver=com.mysql.cj.jdbc.Driver
  properties = {
    user = root
    password = null
  }
  connectionPool = true
  keepAliveConnection = true
}
和build.sbt相关依赖项:

libraryDependencies ++= Seq(
   ...
   "org.eclipse.jetty" % "jetty-webapp" % "9.2.15.v20160210" % "container",
   "javax.servlet" % "javax.servlet-api" % "3.1.0" % "provided",
   "com.typesafe.slick" %% "slick" % "3.2.0",
   "com.typesafe.slick" %% "slick-hikaricp" % "3.2.0",
   "mysql" % "mysql-connector-java" % "latest.integration"
   ...
)
并尝试编译一个简单的DAO

import slick.jdbc.MySQLProfile.api._
class testDAO {

  private val db = Database.forConfig("mysql")
} 
但是SBT编译器抛出了这个异常:

java.lang.ClassNotFoundException: true
        at java.lang.ClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at slick.util.ClassLoaderUtil$$anon$1.loadClass(ClassLoaderUtil.scala:17)
        at slick.jdbc.JdbcDataSource$.loadFactory$1(JdbcDataSource.scala:37)
        at slick.jdbc.JdbcDataSource$.forConfig(JdbcDataSource.scala:46)
slick.SlickException: Configured profile com.mysql.cj.jdbc.Driver does not conform to requested profile scala.runtime.Nothing$
        at slick.basic.DatabaseConfig$.forConfig(DatabaseConfig.scala:99)
        at com.unamur.service.testDAO.<init>(CatDAO.scala:18)
        at com.unamur.app.TestServlet.<init>(TestServlet.scala:11)
        at ScalatraBootstrap.init(ScalatraBootstrap.scala:7)
我还尝试:

import slick.jdbc.MySQLProfile.api._
import slick.basic.DatabaseConfig

class testDAO {
  val dbConfig = DatabaseConfig.forConfig("mysql") 
}
但我还有一个例外:

java.lang.ClassNotFoundException: true
        at java.lang.ClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at slick.util.ClassLoaderUtil$$anon$1.loadClass(ClassLoaderUtil.scala:17)
        at slick.jdbc.JdbcDataSource$.loadFactory$1(JdbcDataSource.scala:37)
        at slick.jdbc.JdbcDataSource$.forConfig(JdbcDataSource.scala:46)
slick.SlickException: Configured profile com.mysql.cj.jdbc.Driver does not conform to requested profile scala.runtime.Nothing$
        at slick.basic.DatabaseConfig$.forConfig(DatabaseConfig.scala:99)
        at com.unamur.service.testDAO.<init>(CatDAO.scala:18)
        at com.unamur.app.TestServlet.<init>(TestServlet.scala:11)
        at ScalatraBootstrap.init(ScalatraBootstrap.scala:7)
slick.SlickException:配置的配置文件com.mysql.cj.jdbc.Driver不符合请求的配置文件scala.runtime.Nothing$
位于slick.basic.DatabaseConfig$.forConfig(DatabaseConfig.scala:99)
在com.unamur.service.testDAO上(CatDAO.scala:18)
在com.unamur.app.TestServlet上(TestServlet.scala:11)
位于ScalatraBootstrap.init(ScalatraBootstrap.scala:7)

有人有主意吗?提前感谢。

这里的问题是connectionPool=true。您需要提供实现,
HikariCP
或其他东西。

您是否尝试键入forConfig方法:
forConfig[JdbcProfile](“mysql”)
谢谢,我从application.conf中删除了connectionPool和keepAliveConnection,这使它默认为HikariCP,一切都很好。