【问题标题】:How to get the ID after inserting data into an Oracle database with Spring JdbcTemplates使用 Spring JdbcTemplates 将数据插入 Oracle 数据库后如何获取 ID
【发布时间】:2016-07-07 15:45:09
【问题描述】:

我在我的项目中使用 Spring JdbcTemplates,我想将数据插入 Oracle 数据库。插入数据后,我需要这个插入值的ID(sr_no),以便我可以使用它。

public int addData(News newsAdd) {
    int flag = 0;

    String url="";
    String cat = newsAdd.getNewsCat();
    String language = newsAdd.getNewsLang();

    // QueryConstant.newsArbian ="INSERT INTO INTERNET_NEWS(SR_NO,TITLE,NEWS_STATUS,HOME_DISPLAY,HOME_DESC,MAIN_DESC,NEWS_DATE,NEWS_CAT,IMGNEWS_URL) VALUES(seq_news.nextval,?,?,?,?,?,?,?,?)";

    flag = getJdbcTemplate().update(
        QueryConstant.newsArbian,
        new Object[] {
            newsAdd.getTitle(),
            newsAdd.getStatus(),
            newsAdd.getNewsHomePage(),
            newsAdd.getNewsDesHom(),
            newsAdd.getNewsDesMan(),
            newsAdd.getDate(),
            newsAdd.getNewsCat(),
            url
        }
    );

    return flag;
}

现在,表中有sr_no 字段,即auto increment。我想获取我插入的数据的sr_no 的值,并将这个值传递给标志变量。

我怎样才能完成这项任务?

【问题讨论】:

标签: java spring oracle spring-jdbc jdbctemplate


【解决方案1】:

尝试 GeneratedKeyHolder [文档]:(https://docs.spring.io/spring/docs/2.5.6/javadoc-api/org/springframework/jdbc/support/GeneratedKeyHolder.html) 它将返回最后插入记录的自动生成的 ID。

【讨论】:

    【解决方案2】:

    您可以为此使用KeyHolder 类。 在此链接上查看13.5.2 Retrieving auto-generated keys using SimpleJdbcInsert 部分http://docs.spring.io/spring/docs/3.1.x/spring-framework-reference/html/jdbc.html#jdbc-simple-jdbc-insert-2

    【讨论】:

      猜你喜欢
      • 2021-09-15
      • 2013-01-10
      • 1970-01-01
      • 2021-02-27
      • 1970-01-01
      • 1970-01-01
      • 2019-01-16
      • 2014-11-20
      相关资源
      最近更新 更多