0

我有一个有两个表的数据库。

一个表(表 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。使用idpms插入此数据时生成的值,表 B 更新idpmstext

我有两个问题:

  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 回答