java.sql中怎么得到刚刚插入的数据的键值?

justfly 2003-02-05 01:03:31
比如php有一个mysql_insert_id()方法
java.sql中有没有什么方法可以得到刚刚插入的数据的键值?
比如一个数据表里面的primary key是一个auto_increment的int (11) ,其名为userId
然后我执行statement.excute("INSERT INTO mytable (name,password) values ('justfly','password')");
那么我应该如何得知justfly的userId?

还有一个问题
怎么得到一个查询之后得到的结果集有多少行?
是result.getFetchSize吗?
...全文
84 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
justfly 2003-02-11
  • 打赏
  • 举报
回复
人呢?
justfly 2003-02-10
  • 打赏
  • 举报
回复
s.executeQuery("INSERT INTO test (name) values ('3')");
ResultSet rs=s.getGeneratedKeys();
rs.next();
System.out.println(rs.getInt("GENERATED_KEY"));

第一个问题我后来是这样子解决的,但是不知道是否有通用性
有高手能指教一下吗?
justfly 2003-02-05
  • 打赏
  • 举报
回复
第一个问题要是多线程的话怎么办?用synchronized的话又很影响效率
有没有直接一点的方法?

第二个问题有没有一些数据库不支持回卷?
也就是说得到的result无法回卷?
peanz 2003-02-05
  • 打赏
  • 举报
回复
可以在插入之前取出原先的数值,然后刚插入的就是数值加一。
取得行数可以这样
rs.last();
int rows_num=rs.getRow();

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧