2012-11-26 5 views
0

가능한 중복 :
How to get the insert ID in JDBC?는 데이터베이스에서 ID를 생성

나는 다음과 같은 테이블이 있습니다

customer(cid, ...)

book(cid, rid)

reservation(rid, ...)

나는 그때 customerreservation 사이 book의 관계를 추가 할 그 테이블에 예약을 추가 할 수 있습니다.

자동 생성되는 동안 rid을 어떻게 알 수 있습니까? 쿼리를 실행하면 ResultSet이 반환됩니까?

rid은 시퀀스와 트리거를 사용하여 자동 생성 된 Oracle 형식입니다.

답변

2

질문 참조 저는 귀하가 진술을 사용하고 있다고 생각합니다. 이 경우 Statement.RETURN_GENERATED_KEYS을 사용할 수 있습니다. 또한이 솔루션은 Oracle 데이터베이스에 대한 고소가있을 수 있으므로이 link을 고려하십시오.

는 JPA entitiyManager.merge(entity); (또는 업데이트)를 사용하는 경우는 ID와 지속 인스턴스를 반환해야합니다 :

Connection connection = database.getConnection(); 
PreparedStatement statement = connection.prepareStatement(myQuery, Statement.RETURN_GENERATED_KEYS); 
int count = statement.executeUpdate(); 
if(count <= 0){ 
//value not inserted 
} 

ResultSet results = statement.getGeneratedKeys(); 

if(results.next){ 
System.out.println(generatedKeys.getLong(1)); 
} 

당신의 경우에하는 ORM을 사용하고 있습니다 :

여기에 작은 예입니다. 최대 절전 모드와 매우 유사 session.merge(entity); (또는 업데이트)

1

어째서 java/jsp와 관계가 있긴하지만 관계형 DB 인 경우 일련의 쿼리를 사용해야합니다. 즉, 아는 하나의 ID (cid)를 얻은 다음 책에서 제거하십시오. 표. 내가 아는 다른 방법은 없어.

희망이 있습니다.

관련 문제