微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

我试图使这三个一起工作,但不能.缺少光滑的文档.我有像这样的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)

我也尝试过:

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

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

但我得到另一个异常:

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)

有人有主意吗?提前致谢.

解决方法:

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐