JDBC添加后怎么返回主键

时间:2024-10-13 20:43:11

1、首先,在插入语甜入艺阝句后添加一条查询,利用resultset来得到id号,psmt = con.prepareStatement ("insert into orders (receiver,address,telephone,total,detailnum,userid)values(?,?,?,?,?,?);select@@identity");psmt.setString(1, order.getReceiver()); …… results = psmt.executeQuery(); if(results.next()) { num = results.getInt(1); }

JDBC添加后怎么返回主键

2、然后,利用generatedKey来获取id,psmt = con.prepareStatement ("insert into orders (receiver,address,telephone,total,detailnum,userid)values(?,?,?,?,?,?)",Statement.RETURN_GENERATED_KEYS); psmt.setString(1, order.getReceiver()); …… psmt.executeUpdate(); results = psmt.getGeneratedKeys(); int num = -1; if(results.next()) { num = results.getInt(1); }

JDBC添加后怎么返回主键

3、然后,调用存储过程来实现,当然这种情况下,插入对象的属性不宜过多,否则存储过程的输入参数太多。在存储过程中,将id作为输出参数返回,CallableStatement proc = conn.prepareCall("{call proc_insert(?,?,?)}"); proc.setString(1, cardname);proc.setInt(2, money); proc.registerOutParameter(3, Types.INTEGER); proc.execute(); num = proc.getInt(3)

JDBC添加后怎么返回主键

4、然后,SQL Server 2000中,有三个比较类似的功能:他们分别是:SCOPE_IDENTITY、IDENT_CURRENT 和 @@IDENTITY,它们都返回插入到 IDENTITY 列中的值。

JDBC添加后怎么返回主键

5、然后,IDENT_CURRENT 返回为任何会话和任何作用域中的特定表最后生成的标识值。IDENT_CURRENT 不受作用域和会话的限制,而受限于指定的表。IDENT_CURRENT 返回为任何会话和作用域中的特定表所生成的值。

JDBC添加后怎么返回主键

6、最后,SCOPE_IDENTITY 返回为当前会话和当前作用域中的任何表最后生成的标识值SCOPE_IDENTITY 和 @@IDENTITY 返回在当前会话中的任何表内所生成的最后一个标识值。但是,SCOPE_IDENTITY 只返回插入到当前作用域中的值;@@IDENTITY 不受限于特定的作用域。

JDBC添加后怎么返回主键
© 手抄报圈