2012-10-24 2 views
0

두 개의 테이블이있는 데이터베이스가 하나 있습니다. 내 데이터베이스를 관리하기 위해 자바를 사용하고PostgresSQL을 사용하여 색인 값 가져 오기

idpms serial NOT NULL, 
    iduser integer NOT NULL, 
    iduser2 integer NOT NULL, 

그리고 다른 (표 B) 3 열

idmessage serial NOT NULL, 
    idpms integer NOT NULL, 
    text character varying(255), 

:

하나 개의 테이블 (표 A)는 3 열이 있습니다.

먼저 테이블 A는 사용자 1과 사용자 2의 값으로 업데이트됩니다. I는 표 A에 데이터를 삽입 한 후 idpms 값을 검색 할 수있는 방법

  1. :이 데이터를 삽입 한 경우에 발생하는 idpms 값 표 B는 idpmstext

    으로 업데이트 I 두 질문 ?

  2. 자바에서는 어떻게 든 idpms을 추출하여 int로 캐스트 할 수 있습니까?

+0

Q1 : 예. Q2 : 네. 시리얼은 단지'자동 증가 정수 '입니다. –

+0

고마워요.하지만 명령을 검색했는데 찾을 수 없습니다. – Favolas

+0

SQL을 사용하는 특별한 명령이 없습니다. 데이터베이스 열 –

답변

1

Q1을하는 데 도움이

import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate; 
import org.springframework.jdbc.support.KeyHolder; 
// stuff... 

    KeyHolder generatedKeyHolder = new GeneratedKeyHolder(); 

    // Execute the update 
    namedJdbcTemplate.update(sqlQuery, params, generatedKeyHolder); 

    // Retrieve the map of ALL the autoincremented fields in the table 
    // Just get the desired one by field name 
    Integer idpms = (Integer) generatedKeyHolder.getKeys().get("idpms"); 

    // use idbpms as parameter for your next query... 

희망 : 네. 질문 2 : 예.

직렬 당신이 그것을 위해 SQL 쿼리를 사용하여 삽입 한 후 값을 얻기 위해 특별한 명령이 없습니다 단지 autoincrementing integer

입니다. 삽입하기 전에 가치를 얻으려면 This article에 대해 설명합니다. 원하는 것을 얻길 바랍니다.

+0

감사합니다. 이것은 내가 묻는 것을 더 많이 도왔다. – Favolas

0
insert into t (iduser, iduser2) values (1,2) 
returning idpms 
0

나는 당신이 KEYHOLDER 개체를 찾고 있습니다 생각합니다.

당신이 데이터베이스 작업을 수행하기 위해 스프링을 사용하는 가정 :

+0

문제가 해결 되었습니까? –