2016-11-25 14 views
0

は、私は私がこのような文字列のリストに変換したいアレイ[文字列]のリストを持っている:挿入トークンdynamicaly Scalaの

val sqlMap = mapList.map({case x => "INSERT INTO bddMedic VALUES ('"+x(0)+"','"+x(1)+"','"+x(2)+"','"+x(3)+"','"+x(4)+"','"+x(5)+"');"}) 

だから私は私のSQL要求を生成することができます。 私の問題は、私は配列内の要素の数をハードコードしていますが、配列に6または7の要素があることがあります。私が欲しいもの

は ' "(1)+ + X私の文字列

「INSERT INTO bddMedicのVALUES( ' "+ X(0)+"'、"' を与えるコードです、 '+ "(x)+"'、+ "x" + "

(x(0)を値に置き換えたもの) x(0)x(1)x(2)を指定する必要はありません。 私は本当にそれを行う方法については全く考えていないし、すべての試行は失敗です。

+1

私は、このようなhttps://github.com/tpolecat/doobieまたはhttp://squeryl.org/またはhttpsなどのSQL層、推薦:// githubのを。 com/getquill/quillまたはhttp://slick.lightbend.com/ – Reactormonk

+1

はい。本当に、実際には、このようなSQLを構築しないでください。 –

+0

なぜこのベースですか –

答えて

2

はmkStringを使用してみてください:

scala> val x = Array(1,2,3,4,5) 
x: Array[Int] = Array(1, 2, 3, 4, 5) 

scala> x.mkString(",") 
res2: String = 1,2,3,4,5 
+0

はい、私はちょうどx.mkStringが仕事をすることができることを発見しました。 –

+4

文字列の配列が信頼できるソース(クエリ文字列)から来ていない場合、SQLインジェクションの影響を受けやすいので危険です。私は代わりに準備されたステートメントをお勧めします。 –

関連する問題