나는 Spring 3.2를 사용하고 있으며, JdbcTemplate에 일반 JDBC를 사용하는 데이터베이스에 대한 기존 호출을 수정하고자한다. 나는 그것에 익숙하지 않지만 내 질문에 대한 답변을 찾을 수 없습니다 (올바른 위치에 게시하기를 바랍니다).Spring에서 자동으로 컬럼 값을 생성한다. JdbcTemplate
UserRegistration
id int, PRIMARY, autoincrement
reg_year int,
reg_id_in_year int,
reg_number varchar(30),
열 "ID"테이블의 기본 키이고 1
열에서 시작, 1 autoincrementing있다 "reg_id_in_year :
나는 데이터베이스에 다음 표 (ommited 일부 필드)가 가정 "어떤 종류의 논리적 색인입니다. 1 년 단위로 계산됩니다. 각 연도의 첫 번째 UserRegistration은 1로 설정됩니다."reg_number"열의 형식은 string = 'reg_year/reg_id_in_year'입니다. 예 : '2017/001'
값의 예 :
id | reg_year | reg_id_in_year | reg_number |
1 | 2017 | 1 | 2017/001 |
2 | 2017 | 2 | 2017/002 |
3 | 2018 | 1 | 2018/001 |
4 | 2018 | 2 | 2018/002 |
5 | 2018 | 3 | 2018/003 |
질문
새 레코드의 삽입을 할 때 "자동적으로"이러한 값을 생성합니다 JdbcTemplate을 어떤 기능이 있습니까 (어쩌면 일부 사용자 지정의 KeyGenerator를 사용)? 이제 데이터베이스를 2 번 호출해야합니다.
- 가장 최근에 등록 번호를 얻으려면 먼저 입력하십시오.
- 두 번째 새 레코드를 삽입하십시오.
미리 감사드립니다.
감사를 채우기 위해 이전에 트리거를 만들 수 있습니다. 하지만 삽입 한 후에 Java 모델로 그 값을 되돌리고 싶다면 어떻게해야할까요? 데이터베이스를 한 번 더 호출해야합니까? – Krzysztof
예. JDBCTemplate은 삽입 된 행 수만 리턴합니다. 또는 IN 및 OUT 매개 변수를 사용하여 저장 프로 시저를 정의하고 저장된 proc에서 값을 가져올 수 있습니다 – StanislavL