2017-09-12 10 views
0

Mysqlにslickを接続する方法については、100sのスレッドがあります。これらのスレッドはすべてslick.driver.MySQLDriver $を使用します。私は、このクラスは廃止され、これがそうで新しいクラスを使用するためにここにslick.jdbc.MySQLProfileを使用してSlick 3.2.1をMySQLに接続する

http://slick.lightbend.com/doc/3.2.1/api/#slick.driver.package

製品マニュアルで述べられている

「slick.jdbc.MySQLProfile」に置き換えられていることを信じています私は

mysql = { 
    driver = "slick.jdbc.MySQLProfile" 
    properties = { 
    driver = "com.mysql.jdbc.Driver" 
    url = "jdbc:mysql://localhost:3306/foo" 
    user = "foo" 
    password = "bar" 
    } 
} 

Database.forConfig("mysql") 

としての私の構成を定義しかし、私は例外

java.lang.RuntimeException: Failed to load class of driverClassName slick.jdbc.MySQLProfile 
     at com.zaxxer.hikari.HikariConfig.setDriverClassName(HikariConfig.java:323) 
     at slick.jdbc.hikaricp.HikariCPJdbcDataSource$.$anonfun$forConfig$3(HikariCPJdbcDataSource.scala:31) 
     at slick.jdbc.hikaricp.HikariCPJdbcDataSource$.$anonfun$forConfig$3$adapted(HikariCPJdbcDataSource.scala:31) 
     at scala.Option.map(Option.scala:146) 
     at slick.jdbc.hikaricp.HikariCPJdbcDataSource$.forConfig(HikariCPJdbcDataSource.scala:31) 
を取得します

他の多くの組み合わせを試しましたが、新しいクラスでは何も動作しないようです。それで、slick.driver.MySQLDriver $が推奨されなくなった今、今接続する正しい方法は何ですか?ここで

は、はい、私は、接続プールが必要なのか

"com.typesafe.slick" %% "slick" % "3.2.1", 
"com.typesafe.slick" %% "slick-hikaricp" % "3.2.1", 
"com.typesafe.slick" %% "slick-codegen" % "3.2.1", 
"mysql" % "mysql-connector-java" % "5.1.34", 

build.sbtから私のlibraryDependenciesです。

編集:私は

mysql = { 
    profile = "slick.jdbc.MySQLProfile$" 
    properties = { 
    driver = "com.mysql.jdbc.Driver" 
    url = "jdbc:mysql://local:3306/foo" 
    user = "foo" 
    password = "bar" 
    } 
} 

に自分の設定を変更する下の提案に基づいていますが、今、私は取得エラー

java.lang.IllegalArgumentException: dataSource or dataSourceClassName or jdbcUrl is required. 
     at com.zaxxer.hikari.HikariConfig.validate(HikariConfig.java:786) 
     at com.zaxxer.hikari.HikariDataSource.<init>(HikariDataSource.java:67) 
     at slick.jdbc.hikaricp.HikariCPJdbcDataSource$.forConfig(HikariCPJdbcDataSource.scala:58) 
     at slick.jdbc.hikaricp.HikariCPJdbcDataSource$.forConfig(HikariCPJdbcDataSource.scala:21) 

答えて

2

documentationはあなたの設定でこれを置くことを示唆している:

profile = "slick.jdbc.MySQLProfile$" 

行末に$があることに注意してください。また

enable connection poolingに次の行を追加します。ここでは

dataSourceClass = "slick.jdbc.DatabaseUrlDataSource" 
+0

は私のためには機能しませんでした。私は自分の投稿を編集しました。 –

1

が完全に動作する設定で、誰がそれを必要とする場合

mysql = { 
    profile = "slick.jdbc.MySQLProfile$" 
    dataSourceClass = "slick.jdbc.DatabaseUrlDataSource" 
    properties = { 
    driver = "com.mysql.jdbc.Driver" 
    url = "jdbc:mysql://localhost:3306/foo" 
    user = "foo" 
    password = "bar" 
    } 
} 

フルbuild.sbt使用して確立

"com.typesafe.slick" %% "slick" % "3.2.1", 
"com.typesafe.slick" %% "slick-hikaricp" % "3.2.1", 
"com.typesafe.slick" %% "slick-codegen" % "3.2.1", 
"mysql" % "mysql-connector-java" % "5.1.34", 

接続を

Database.forConfig("mysql") 
+0

共有いただきありがとうございました。 – samidarko

関連する問題