我有MySQL存储例程,需要从我的Java Spring应用程序中调用它们。目前我这样做:
result = org.springframework.jdbc.core.JdbcTemplate.query(
"CALL MyRoutine(?, ?);",
myRowMapper,
parameterOne,
parameterTwo);
问题:
答案 0 :(得分:1)
您可以使用NamedParameterJdbcTemplate
绕过参数顺序。见http://static.springsource.org/spring/docs/3.0.x/reference/jdbc.html
答案 1 :(得分:1)
#setX(String, X)
上的CallableStatement
方法按名称而不是索引来绑定存储过程的参数。您的数据库驱动程序可能不支持此功能。这与仍然按索引绑定的NamedParameterJdbcTemplate
不同。另请注意,NamedParameterJdbcTemplate
在分析和重写查询时会有一些开销。