嗨,Sean!
HoneySQL是一个非常好用、紧凑且精简的工具。阅读和修改它对我来说是一种极大的乐趣 :)
另外,我还没有试验过你的next.jdbc,但它肯定在我计划之中。
我的任务是以下内容
我需要将具有相同元数据形状(表和列)的多个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-params向量,所以我想要提交一个sql语句和sql-params向量
"insert into "my-table" ("col1","col2") VALUES (?, ?)" 和 [["str1" "str2"] ["str1"]],但是这样做我需要相同的params "布局"。
因此,我需要覆盖HoneySQL的默认行为,将'NULL'(和布尔值)内联到sql参数中。
结果
1. "insert into "my-table" ("col1","col2") VALUES (?, ?)" ["str1" "str2"]
2. "insert into "my-table" ("col1","col2") VALUES (?, ?)" ["str1" nil]
你有什么更准确的建议吗?