0

2つのテーブルを持つ1つのデータベースがあります。

1つのテーブル(テーブルA)には3つの列があります。

   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),

データベースの管理にJavaを使用しています。

まず、テーブルAがユーザー1とユーザー2の値で更新されます。このデータを挿入したときに生成されたidpms値を使用して、表Bは次のように更新されますidpmstext

2つの質問があります:

  1. idpms表Aにデータを挿入した後、の値を取得するにはどうすればよいですか?

  2. Javaでは、どういうわけかを抽出idpmsしてintにキャストできますか?

4

3 に答える 3

1

Q1:はい。Q2:はい。

シリアルはただautoincrementing integer

挿入後に値を取得するための特別なコマンドはありません。SQLクエリを使用できます。挿入する前に値を取得したい場合は、それThis articleについて話し合います私はあなたが望むものを取得することを願っています

于 2012-10-27T15:21:28.830 に答える
0
insert into t (iduser, iduser2) values (1,2)
returning idpms
于 2012-10-24T15:52:24.327 に答える
0

KeyHolderオブジェクトを探していると思います。

Springを使用してデータベース操作を実行していると仮定します。

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...

それが役立つことを願っています

于 2012-10-24T16:33:14.580 に答える