为什么我需要导入驱动程序才能使用提升的查询?

时间:2014-04-01 10:33:17

标签: scala slick slick-2.0

我使用slick 2.0进行数据库交互。

根据建议,我已使用BonesCP添加了外部连接池。

val driver =  Class.forName(Database.driver)
val ds = new BoneCPDataSource(); 
ds.setJdbcUrl(Database.jdbcUri);        
ds.setUsername(Database.user);  
ds.setPassword(Database.password);

使用它我创建了我的连接:

scala.slick.jdbc.JdbcBackend.Database.forDataSource(ds)
    db withSession {implicit  session =>
         (...)
    }
  }

现在,如果我在我的TableQuery对象上执行类似这样的操作:

provisioning.foreach {(...)}

它说没有foreach方法。

所以我已导入: import scala.slick.driver.PostgresDriver.simple._

现在一切正常。

我不喜欢的是我的代码与某个数据库实现相关联。

我可以以某种方式让它读取" db dialect"从配置文件?

1 个答案:

答案 0 :(得分:0)

所以现在我知道应该如何正确地完成这项工作。 我去过Slick的Stefan Zeiger的演讲,他是该图书馆的原作者,他指出,由于PostgresDriver以及其他驱动因素是我们可以混合而不是导入的特征。因此有机会动态选择适合我们数据库的驱动程序。