簡體   English   中英

根據 sql 中的最后一個人增加 id

[英]Increment id based on last person in sql

每當我插入人時,我想獲取最后一個人的 id,並自動將其遞增 1,如果它不存在,則將 id 設為 1。我需要在哪里設置,我需要什么使用? 我認為應該在getter中完成還是?

有吸氣劑和二傳手的人

public class Person {
     int id;
     int name;
 }

個人數據訪問 Object


public Person addPerson(Person person) {
  String sql = "INSERT INTO people (id, name) values (?, ?);"
  jdbcTemplate.update(sql, person.getId(), person.getName());
  
  return person;
}

看來您需要將數據庫生成的 ID 應用回 Java object。 由於您說您使用的是 Postgres,因此您可以使用 RETURNING 子句來執行此操作。

我認為 Spring Boot 中有一種更通用的方法,但我不記得了,所以可能有一個更好的答案來涵蓋所有數據庫。

public Person addPerson(Person person) {
  String sql = "INSERT INTO people (name) values (?) RETURNING id";
  Object[] params = new Object[]{ person.getName() };
  int newId = jdbcTemplate.queryForObject(sql, params, Integer.class);
  person.setId(newId);
  return person;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM