2013-07-28 2 views
0

"식별자"속성이있는 테이블이 있습니다. 이 속성은 고유하고 자동으로 하나씩 증가해야합니다 (속성의 길이는 6 자리 여야 함).6 자리 자동 증가 필드

예를 들어 처음 엔 엔티티를 유지할 때 식별자는 000001이어야하고 두 번째 엔티티는 000002이어야합니다.

이 요구 사항을 구현하는 방법을 알려주십시오.

미리 감사드립니다.

+2

왜? 보통 이런 식으로해야 할 필요가있는 것은 치명적인 디자인 결함을 나타냅니다. 이드가 999999에 도착하면 어떻게 되나요? –

+0

@ 토니 당신은 대답을 알고 – morpheus05

+0

@ morpheus05. 글쎄, 나는 몇 가지 가정을 할 수 있고 그들에게 대답 할 수있다. :(:(:( –

답변

2

숫자를 문자열로 변환해야합니다. 이렇게하려면 String.format을 사용할 수 있습니다.

String.format("%06d", num) 

'0'갭이 0
'6'으로 채워진다 결과 진수 정수로 포맷 된 결과를 제
'D'의 크기를 가진다.

예를 들어 :

var = "000008" 

편집 :

int num = 8; 
String var = String.format("%06d", num); 

는 반환 및 String.format의 구문은 여기에서 찾을 수 있습니다 : 당신이를 검색하려면 http://docs.oracle.com/javase/7/docs/api/java/util/Formatter.html#syntax

ID에서 문자열을 숫자로 구문 분석합니다.

String identifier = "000008"; // Returned ID from database 
Number num = Integer.parseInt(identifier); // num = 8 
+0

당신의 답장을 보내 주셔서 감사합니다 :) 내 질문의 두 번째 부분은 데이터베이스에 삽입 된 최대 숫자를 아는 가장 효율적인 방법은 무엇입니까? – User

+0

@ user2490510 : 알 필요조차 없습니다 데이터베이스 시퀀스 또는 자동 증가 필드를 사용하십시오. 데이터베이스에서 ID를 생성해야합니다. 데이터베이스에서 최대 값을 얻을 때까지는 여러 트랜잭션이 병렬로 실행되므로 최대 값이 아닐 수도 있습니다. –

+0

@ user2490510 위에서 말했듯이, ID를 자동으로 증가시키는 시퀀스를 사용하는 것이 더 좋습니다. 최대 ID는 YourTable의 Select Max (id)로 검색 할 수 있습니다 – yohm