让我更新已经问过question,因为新手不清楚答案。 我试图从Play,Slick 3.2.3和不支持的数据库(准确地说是RDB)开始。我从Play网站上的play-scala-isolated-slick-examples开始。 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,没有连接开始。
答案 0 :(得分:0)
错误消息告诉您profile
需要扩展特征 JdbcProfile
,但您传递随播广告对象 { {1}},它不会扩展同名的特征。
回答你的另一个问题 - 是的,我担心你必须自己实施JdbcProfile
,而且我相信这对新手来说可能会非常满口,因为Slick的API非常先进。