Jdbc 如何使用ResultSet获取记录的ID
我有一个名为table_listnames的表,其结构如下所示Jdbc 如何使用ResultSet获取记录的ID,jdbc,Jdbc,我有一个名为table_listnames的表,其结构如下所示 mysql> desc table_listnames; +-------+--------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------+--------------+------+-----+---------+---------
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并在未找到任何内容时插入。