如何使用运行在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