clojure.java.jdbc / insert - 无法动态插入一系列向量以便批量插入到sql中

时间:2016-05-09 10:30:23

标签: sql clojure

我正在尝试使用clojure.java.jdbc / insert在sql中插入一系列向量作为行!接收输入的函数:

http://clojure-doc.org/articles/ecosystem/java_jdbc/using_sql.html#inserting-data

我无法通过映射动态地映射一系列向量,如([“a”1“c”] [“b”2“d”] [“d”3“e”] ....)因为它使用以下语法

(j/insert! db-spec :fruit
         nil ; column names not supplied
         [1 "Apple" "red" 59 87]
         [2 "Banana" "yellow" 29 92.2]
         [3 "Peach" "fuzzy" 139 90.0]
         [4 "Orange" "juicy" 89 88.6])

我希望能够动态插入sql以进行批量插入。我怎样才能做到这一点? TIA。

1 个答案:

答案 0 :(得分:1)

您可以使用apply(将整个args列表作为args应用于j / insert!函数)来执行此操作。

(def args-list '([1 "Apple" "red" 59 87]
                 [2 "Banana" "yellow" 29 92.2]
                 [3 "Peach" "fuzzy" 139 90.0]
                 [4 "Orange" "juicy" 89 88.6] ...))

(apply j/insert! db-spec :fruit args-list)