嗨,Sean!
HoneySQL很棒,简洁而精炼。阅读和摆弄它对我来说是一种极大的享受:)
此外,我还没有玩过你的next.jdbc,但绝对在我的计划中。
我的任务是以下
我需要将具有相同元数据形状(表和列)的几个insert honey sql命令批量放入单个jdbc/execute!调用中。
例如
1. {:insert-into [:my-table]
:values [{:col1 "str1"
:col2 "str2"}]}
2. {:insert-into [:my-table]
:values [{:col1 "str1"
:col2 nil}]} <--------- 这里是nil值
Honey SQL给我
1. "insert into "my-table" ("col1","col2") VALUES (?, ?)" ["str1" "str2"]
2. "insert into "my-table" ("col1","col2") VALUES (?, NULL)" ["str1"] <----- NULL被内联
jdbc/execute!等待SQL和SQL参数的向量,因此我想提交一个SQL语句和参数的向量
"insert into "my-table" ("col1","col2") VALUES (?, ?)" 和 [[str1" "str2"] [str1]],但为了这样做,我需要有相同的参数"布局"。
因此,我需要覆盖默认的honeysql行为,将'NULL'(和布尔值)内联到SQL参数中。
结果
1. "insert into "my-table" ("col1","col2") VALUES (?, ?)" ["str1" "str2"]
2. "insert into "my-table" ("col1","col2") VALUES (?, ?)" ["str1" nil]
也许你可以给我更好的建议。