如何使用運行在mySQL上的JdbcTemplate以可伸縮的方式執行以下SQL。在這種情況下,可擴展的方式:使用JdbcTemplate插入多行
- 只有一個SQL語句的服務器
- 它適用於任何數量的行上執行。
這裏的語句:
INSERT INTO myTable (foo, bar) VALUES ("asdf", "asdf"), ("qwer", "qwer")
假設我有POJO的與foo
和bar
字段列表。我意識到我可以迭代列表並執行:
jdbcTemplate.update("INSERT INTO myTable(foo, bar) VALUES (?, ?)", paramMap)
但這並不能達到第一個標準。
,我相信我也可以執行:
jdbcTemplate.batchUpdate("INSERT INTO myTable(foo, bar) VALUES (?, ?)", paramMapArray)
但我可以告訴,這將只是編譯SQL一次執行它多次,再次失敗的第一個標準。
最後的可能性,似乎通過這兩個標準,將簡單地構建SQL自己與StringBuffer
,但我想避免這種情況。
我們能不能只使用JDBC一樣嗎? ? – 2010-07-02 12:54:15
這與JdbcTemplate甚至JDBC無關。你不能在SQL,period(或標準SQL,無論如何)中這樣做,所以你當然不能在JdbcTemplate中做到這一點。 – skaffman 2010-07-02 12:55:55
@skaffman:我更新了我的問題,說我正在使用mySQL。也許它只是一個mySQL特性,但在http://dev.mysql.com/doc/refman/5.1/en/insert.html大約四分之一的地方描述了它:「使用VALUES語法的INSERT語句可以插入爲了做到這一點,需要包含多個列值列表,每個列表值都包含在括號內,並用逗號分隔。例如:「 – 2010-07-02 13:01:05