简体   繁体   English

无法使Scala,Slick和MySQL协同工作

[英]Can't make Scala, Slick and MySQL work together

I'm trying to make these three work together but can't. 我试图让这三个一起工作,但不能。 Slick documentation is lacking. 缺乏光滑的文档。 I have application.conf setup for Typesafe config like this : 我有针对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
}

and build.sbt relevant dependencies : 和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"
   ...
)

and try to compile a simple DAO 并尝试编译一个简单的DAO

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

  private val db = Database.forConfig("mysql")
} 

but SBT compiler throws me this exception : 但是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)

I also tried : 我也尝试过:

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

class testDAO {
  val dbConfig = DatabaseConfig.forConfig("mysql") 
}

but I get another Exception : 但我得到另一个例外:

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)

Anyone has an idea ? 有人有想法吗? Thanks in advance. 提前致谢。

connectionPool = true is the problem here. connectionPool = true是这里的问题。 You need to provide implementation, HikariCP or something else. 您需要提供实施, HikariCP或其他。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM