작성
·
125
0
@Override
public Item save(Item item) {
String sql = "insert into item (item_name, price, quantity) " +
"values(:itemName, :price, :quantity)";
SqlParameterSource param = new BeanPropertySqlParameterSource(item);
KeyHolder keyHolder = new GeneratedKeyHolder();
template.update(sql, param, keyHolder);
long key = keyHolder.getKey().longValue();
item.setId(key);
return item;
}
KeyHolder같은경우 id를 내부에서 직접 구성해줘야하기 때문에 쓰는거라고 알고있는데 서버를 열어서 추가를 해줄때마다 숫자가 증가되는걸 볼수있었습니다. 숫자가 증가되는건 코드에서 자체적으로 해주는건가요?
항상 답변감사드립니다.
답변 1
0
데이터베이스가 자동으로 증가하는 키(예: 자동 증가 ID)를 관리합니다!
KeyHolder는 이러한 Database가 자동 생성된 키 값을 애플리케이션 코드에서 사용할 수 있게 해줍니다.
데이터베이스에 데이터를 추가할 때, 해당 키 값은 데이터베이스의 설정(예: AUTO_INCREMENT 속성)에 의해 자동으로 관리되며, 이 값을 가져오기 위해 KeyHolder와 같은 메커니즘이 사용됩니다.
데이터베이스 설정에 따라 자동으로 증가되는 코드가 내부 자체적으로 있는건가요?