我正在尝试使用Slick编写可配置的sql查询执行程序。用户提供准备好的声明?并在运行时通过替换形成确切的查询?有价值观。
通常,这是使用光滑的方式运行普通sql查询的方式。
val query = sql"#$queryString".as[(String,Int)]
在我的情况下,我不知道结果类型,所以我想要回到通用结果类型。也许是一个元组列表,每个元组代表一行结果SET。
关于如何做到这一点的任何想法?
答案 0 :(得分:0)
我找到了一个scala git问题的解决方案。这是
ResultMap extends GetResult[Map[String, Any]] {
def apply(pr: PositionedResult) = {
val resultSet = pr.rs
val metaData = resultSet.getMetaData();
(1 to pr.numColumns).map { i =>
metaData.getColumnName(i) -> resultSet.getObject(i)
}.toMap
}
然后我们可以做val query = sql"#$queryString".as(ResultMap)
希望它有所帮助!!