如何使用在 mySQL 上运行的JdbcTemplate以可扩展的方式执行以下 SQL。在这种情况下,可扩展意味着:
- 服务器上只执行一条 SQL 语句
- 它适用于任意数量的行。
这是声明:
INSERT INTO myTable (foo, bar) VALUES ("asdf", "asdf"), ("qwer", "qwer")
假设我有一个带有foo
和bar
字段的 POJO 列表。我意识到我可以遍历列表并执行:
jdbcTemplate.update("INSERT INTO myTable(foo, bar) VALUES (?, ?)", paramMap)
但这并没有达到第一个标准。
我相信我也可以执行:
jdbcTemplate.batchUpdate("INSERT INTO myTable(foo, bar) VALUES (?, ?)", paramMapArray)
但据我所知,这只会编译一次 SQL 并多次执行,再次失败第一个标准。
最后一种可能性,似乎同时通过了这两个标准,就是自己简单地用 a 构建 SQL StringBuffer
,但我想避免这种情况。