【发布时间】:2018-05-29 18:13:07
【问题描述】:
让我刷新一下已经问过question,因为新手并不清楚答案。 我正在尝试从 Play、Slick 3.2.3 和不受支持的数据库(准确地说是 RDB)开始。我从 Play 网站上的 play-scala-isolated-slick-example 开始。 Slick 不支持 RDB 数据库,因此我尝试使用通用 Jdbc 配置文件(我认为适合所有):
package test.mydb.slick
import javax.inject.{Inject, Singleton}
import slick.driver.JdbcProfile
import slick.jdbc.JdbcBackend.Database
import test.mydb.{MyTblDAO, Tbl} // case class defined there
import scala.concurrent.{ExecutionContext, Future}
import scala.language.implicitConversions
import scala.reflect.ClassTag
@Singleton
class SlickMyTblDAO @Inject()(db: Database)(implicit ec: ExecutionContext)
extends MyTblDAO with test.mydb.slick.Tables {
// override val profile: JdbcProfile = _root_.slick.jdbc.JdbcProfile
override val profile: JdbcProfile = slick.driver.JdbcProfile
import profile.api._
def lookup(id: String): Future[Option[MyTbl]] = {.... and so on
这段代码没有被编译,因为:
type mismatch;
[error] found : slick.driver.JdbcProfile.type
[error] required: slick.driver.JdbcProfile
[error] (which expands to) slick.jdbc.JdbcProfile
[error] override val profile: JdbcProfile = slick.driver.JdbcProfile
[error] ^
不确定我是否完全理解问题的根源,但我想不能直接使用 Jdbc 配置文件。 answer 表示“可以通过 trait slick.jdbc.JdbcProfile 的自定义实现来支持其他数据库”。这是否意味着我需要自己实现配置文件?初学者可以实现吗?我只需要一个简单的 DML,不需要 DDL,也不需要开始连接。
【问题讨论】:
标签: scala playframework slick