Scala Slick:无法在查询中获取参数
我刚刚花了几个小时在这上面。我试图通过Scala中的Slick在PostgreSQL中进行一个相当复杂的查询,但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) = {
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来刷新某些内容。