从Scala集合生成动态SQL where子句

Bla*_*ird 0 collections scala scala-collections

我想where从Scala集合生成动态SQL 子句,例如Map

例如,有了一个Map("firstName" -> "Chuck", "lastName" -> "Norris")对象,我想生成以下子句:

where firstName = 'Chuck'
and lastName = 'Norris'
Run Code Online (Sandbox Code Playgroud)

基本上,对于集合中的第一个元素,在where关键字前面,对于后续元素,在前面加上and.

我真的很难在Scala中做这个算法,所以我在寻求你的帮助.也许Map这个任务不是正确的集合?

Nic*_*las 6

可能的解决方案是:

myMap.map {case (k, v) => """%s = '%s'""".format(k, v)}
  .mkString("where ", "\nand ", "")
Run Code Online (Sandbox Code Playgroud)

map函数用格式转换键/值进入key = 'value',并mkString构建where子句.