如何获取用JdbcTemplate插入的行的任何列的值

问题描述

我可以使用Spring的JdbcTemplate获取刚刚插入的行的列值吗?

例如sql看起来像这样:

insert into table1 (name,age) values ('name',20) returning name;

我想获取name列的值。

update()方法仅返回插入的行数。

解决方法

如果您使用JdbcTemplate.queryForObject()并且sql使用with ... as构造,则似乎可以插入行:

String sql="with result as (\n" +
        "insert into table1 (name,age) values ('name',20) returning name\n" +
        ")\n" +
        "select name from result;";

String name = jdbcTemplate.queryForObject(sql,String.class);