嗨,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被内联
jdb/execute! 等待SQL和一个SQL参数向量,所以我想要提交一个SQL语句和SQL参数向量
"insert into "my-table" ("col1","col2") VALUES (?, ?)" and [["str1" "str2"] ["str1"]] 但为了做到这一点,我需要有相同的params "layout"。
因此我需要覆盖HoneySQL默认行为,将'NULL'(和布尔值)内联到SQL参数中。
结果
1. "insert into "my-table" ("col1","col2") VALUES (?, ?)" ["str1" "str2"]
2. "insert into "my-table" ("col1","col2") VALUES (?, ?)" ["str1" nil]
也许您可以提供更准确的方法。