spring - 如何在 spring mvc 3 中使用 jdbcTemplate 返回结果集的预准备语句?

标签 spring spring-mvc spring-jdbc

这是我使用 jdbcTemplate 的代码

 String SQL = "select branch from branchTable where branch_name = '" + branch + "'";         
           ArrayList<String> branchList = (ArrayList<String>) jdbcTemplateObject.query(SQL, new RowMapper() {
                  public Object mapRow(ResultSet resultSet, int i) throws SQLException {
                    return resultSet.getString("city_desc");
                  }
                });
                       return branchList;

现在我希望能够将准备好的语句与查询一起使用,例如“从branchTable中选择分支,其中branch_name = ?”

如何使用 jdbcTemplate 做到这一点? 我搜索的示例显示了如何将其与更新或插入查询一起使用,但不与选择查询一起使用。

请帮忙。

最佳答案

JdbcTemplate 有 another query() method它将准备好的语句的参数作为参数:

jdbcTemplateObject.query(SQL, new Object[] {branchName}, new RowMapper() {...});

请注意:

  • SQL应命名为sql
  • 您应该使用List而不是ArrayList 。 javadoc 中没有任何内容保证返回 ArrayList。而且您不应该关心返回的列表的具体类型。
  • 您应该使用RowMapper<String>而不是原始的RowMapper .

关于spring - 如何在 spring mvc 3 中使用 jdbcTemplate 返回结果集的预准备语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19489978/

相关文章:

maven - 无法解析类或包 H2

java - 如何处理 API 中格式不正确的请求

java - Spring Boot 2 中缺少 TomcatEmbeddedServletContainerFactory

java - 使用列表类型覆盖 @ConfigurationProperties 中的 setter

spring - @RequestMapping 注释中 "params"的含义?

spring - org.springframework.web.servlet.DispatcherServlet noHandlerFound(未找到映射)

java - 如何签署 Spring Rest Controller 使用的 JSON 消息?

javascript - 在 spring mvc 应用程序中链接资源的正确方法

spring - DriverManagerDataSource 和 SimpleDriverDataSource 的区别

java - 独立 Spring 应用程序中遇到 BeanCreationException