【问题标题】:How to insert with JdbcTemplate returning autogenerated id?如何插入 JdbcTemplate 返回自动生成的 id?
【发布时间】:2017-10-10 03:42:13
【问题描述】:

我想利用springJdbcTemplate插入一行并返回mysql db自动生成的id。

如果没有弹簧,我会做如下类似的事情:

String sql = "INSERT INTO mytable (id, filename, timestamp) VALUES (NULL, ?, NOW())";
Statement st = con.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS);

st.setString("test.csv");
st.executeUpdate();
st.getGeneratedKeys().next().getLong(1);

问题:我如何使用JdbcTemplate 达到同样的效果?

【问题讨论】:

    标签: java mysql spring


    【解决方案1】:

    简而言之

     Number key = jdbcInsert.executeAndReturnKey(new MapSqlParameterSource(
                    parameters));
    

    你可以在identity from sql insert via jdbctemplate查看我的答案

    【讨论】:

    • 我应该在哪里添加我的 sql 语句?
    • 能否请您查看我共享的线程,您可以找到其他方法来实现这一点,包括 SQL 方法。如果您想坚持使用 SQL 语句,那么我想您可以将 KeyHolder 与 update 语句一起使用,或者在调用 insert 语句后调用 jdbcTemplate.queryForInt()。
    猜你喜欢
    • 2011-11-18
    • 1970-01-01
    • 2011-02-15
    • 1970-01-01
    • 2013-12-25
    • 1970-01-01
    • 2016-10-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多