使用Spring JdbcTemplate提取一个字符串

2022-09-01 18:06:37

似乎找不到使用 JdbcTemplate 查询从表中获取一个字符串的方法。这是我的 sql 返回的表:

ID | STREET_NAME
------------------------
1  | Elm street

现在我应该如何获得STREET_NAME的价值。SQL 始终返回一行,因此无需担心返回多行。

对于某些背景信息:同一查询中的内部联接和计数

使用托尼·斯塔克的答案来获取我的桌子。

但是我如何使用JdbcTemplate从中提取“Elm street”呢?


答案 1

了解您的SQL查询是什么样子会很有帮助,但假设它是这样的SELECT STREET_NAME FROM table WHERE ID=1;

法典:

public String getStreetNameById(int id) {
    JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
    String sql = "SELECT STREET_NAME FROM table WHERE ID=?";

    String streetName = (String) jdbcTemplate.queryForObject(
            sql, new Object[] { id }, String.class);

    return streetName;
}

答案 2

JdbcTemplate 实现 JdbcOperations

如果你看一下 queryForObject javadocs,它指出:JdbcOperations

已弃用。从5.3开始,赞成queryForObject(String, Class, Object...)

基本上,他们已经改变了方法签名,以摆脱方法签名中的参数,以支持varargs。请参阅相关的 Github 问题Object[]

您可以使用新的方法签名重写@jlewkovich的答案,如下所示:

public String getStreetNameById(int id) {
    JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
    String sql = "SELECT STREET_NAME FROM table WHERE ID=?";

    String streetName = (String) jdbcTemplate.queryForObject(
            sql, String.class, id);

    return streetName;
}

推荐