Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala Slick:无法在查询中获取参数_Scala_Jdbc_Slick_Jdbc Postgres - Fatal编程技术网

Scala Slick:无法在查询中获取参数

Scala Slick:无法在查询中获取参数,scala,jdbc,slick,jdbc-postgres,Scala,Jdbc,Slick,Jdbc Postgres,我刚刚花了几个小时在这上面。我试图通过Scala中的Slick在PostgreSQL中进行一个相当复杂的查询,但Slick永远不会考虑我的任何参数。如果我尝试以下简单的方法: def get(location: String) = { val query = sql"select * from cities_v where name = $location limit 10" println(query.toString) } def get(location: String) = {

我刚刚花了几个小时在这上面。我试图通过Scala中的Slick在PostgreSQL中进行一个相当复杂的查询,但Slick永远不会考虑我的任何参数。如果我尝试以下简单的方法:

def get(location: String) = {
  val query = sql"select * from cities_v where name = $location limit 10"
  println(query.toString)
}
def get(location: String) = {
  val query = sql"select * from cities_v where name = #$location limit 10"
  println(query.toString)
}
输出将是:

SQLActionBuilder(Vector(select * from cities_v where name = ? limit 10),<function2>)
SQLActionBuilder(Vector(select * from cities_v where name = , ville,  limit 10),<function2>
输出将是:

SQLActionBuilder(Vector(select * from cities_v where name = ? limit 10),<function2>)
SQLActionBuilder(Vector(select * from cities_v where name = , ville,  limit 10),<function2>
现在,我想做的是更复杂的查询,在Postgres中进行计算和函数调用。但我哪儿也去不了,因为斯里克不允许我使用任何变量

我尝试设置各种隐式,一些扩展GetResult,一些扩展StatementParameters,Slick似乎忽略了所有隐式,或者用?或者用逗号包围它们,从而使我的所有查询都无效。我想补充一点,美元不是很好,因为它不提供消毒。我想继续使用Slick,因为它是异步的,但我不确定从这里可以走到哪里

根据build.sbt,以下是我的版本号:


我做错了什么?

这没什么错吗?出现在结果语句中。只是,每一个?表示未来值的占位符


只需对任何数据库运行查询并检查结果。

让我试试。它似乎不像我想的那样,是针对数据库运行的。我使用了另一种解决方案,但我需要再次使用原始SQL语句,所以我会这样做,并让您知道它是如何运行的。您完全正确。我只是不习惯滑头的工作方式。到目前为止,我发现Slick非常棒,他们的文档非常糟糕。在我看来,这些医生至少真的很糟糕。但现在一切都解决了。谢谢你的帮助!不客气。我建议您阅读下划线。io我仍然在本书中使用ctrl+f来刷新某些内容。