Jdbc 如何使用ResultSet获取记录的ID

Jdbc 如何使用ResultSet获取记录的ID,jdbc,Jdbc,我有一个名为table_listnames的表,其结构如下所示 mysql> desc table_listnames; +-------+--------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------+--------------+------+-----+---------+---------

我有一个名为table_listnames的表,其结构如下所示

mysql> desc table_listnames;
+-------+--------------+------+-----+---------+----------------+
| Field | Type         | Null | Key | Default | Extra          |
+-------+--------------+------+-----+---------+----------------+
| id    | int(11)      | NO   | PRI | NULL    | auto_increment |
| name  | varchar(255) | NO   |     | NULL    |                |
+-------+--------------+------+-----+---------+----------------+
2 rows in set (0.04 sec)
它已获得示例数据,如图所示

mysql> select * from table_listnames;
+----+------------+
| id | name       |
+----+------------+
|  6 | WWW        |
|  7 | WWWwww     |
|  8 | WWWwwws    |
|  9 | WWWwwwsSSS |
| 10 | asdsda     |
+----+------------+
5 rows in set (0.00 sec)
我有一个要求,如果在表下找不到名称,我需要插入,否则什么也不做

我就是这样做到的

String sql = "INSERT INTO table_listnames (name) SELECT name FROM (SELECT ?) AS tmp WHERE NOT EXISTS (SELECT name FROM table_listnames WHERE name = ?) LIMIT 1";


            pst = dbConnection.prepareStatement(sql);
            pst.setString(1, salesName);
            pst.setString(2, salesName);
            pst.executeUpdate();

在这种情况下,是否可以知道给定名称记录的id

如果名称在表中,是否要获取记录id?或两种情况下添加的行?ya的记录id。如果它现在存在,或者插入了新的@MarkRotterVeel副本,很好,你找到了它,但我需要获取密钥,以防记录也存在。在这种情况下,可能更容易按照ali786在他现在删除的答案中的建议执行:在名称上添加唯一的约束,只需按照我的链接中的建议获取生成的密钥进行插入,并选择是否由于重复密钥错误而导致插入失败。或者执行相反的操作:选择first并在未找到任何内容时插入。