如何使用 spring 的 jdbcTemplate 在 SQL 查询中指定参数

Posted

技术标签:

【中文标题】如何使用 spring 的 jdbcTemplate 在 SQL 查询中指定参数【英文标题】:How to specify parameters in an SQL query using spring's jdbcTemplate 【发布时间】:2012-06-10 17:29:59 【问题描述】:

如何在下面的 jdbctemplate 示例中指定“age”参数的值?

String sql = "SELECT * FROM CUSTOMER where age = ? ";

    List<Customer> customers = new ArrayList<Customer>();
    JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);

    List<Map> rows = jdbcTemplate.queryForList(sql);
    for (Map row : rows) 
        Customer customer = new Customer();
        customer.setCustId((Long)(row.get("CUST_ID")));
        customer.setName((String)row.get("NAME"));
        customer.setAge((Integer)row.get("AGE"));
        customers.add(customer);
    

return customers;

【问题讨论】:

【参考方案1】:

您可以使用queryForList() 方法将参数作为参数,例如:

List<Map<String, Object>> rows = jdbcTemplate.queryForList(sql, theAge);    

学习阅读 API 文档(以及一般文档)。这就是你学习的方式。

【讨论】:

谢谢,我正在查看文档,但有点困惑,因为它在检索单行或多行时的工作方式与标准 JDBC 略有不同。

以上是关于如何使用 spring 的 jdbcTemplate 在 SQL 查询中指定参数的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Spring 的 JdbcTemplate 重用相同的连接?

如何使用 Spring Framework 中的 JdbcTemplate 类执行 INSERT 语句

如何使用 spring 的 jdbcTemplate 在 SQL 查询中指定参数

如何使用 Spring 的 JDBCTemplate 有效地执行 IN() SQL 查询?

如何使用 Spring 的 JdbcTemplate 连接一个简单的 MySql 数据库?

如何执行 IN() 和 WHERE=?使用 Spring 的 JDBCTemplate 进行 SQL 查询