随笔-35  评论-97  文章-0  trackbacks-0

       某些时候,你插入一条记录后要马上知道刚才插入记录的id(自增类型),那么下面的方面可以满足你的要求:

        Connection conn = ;
        Serializable ret 
= null;
        PreparedStatement state 
= .;
        ResultSet rs
=null;
        
try {
            state.executeUpdate();
            rs 
= state.getGeneratedKeys();
            
if (rs.next()) {
                ret 
= (Serializable) rs.getObject(1);
            }
       
        }
 catch (SQLException e) {
        }
 
        
return ret;

 

 

posted on 2007-06-29 18:35 三告习习 阅读(1590) 评论(2)  编辑  收藏 所属分类: database

评论:
# re: [database] 获取数据库自增类型生成的主键的方法 2007-07-02 09:35 | paul
看不太明白,可以给分析下么?  回复  更多评论
  
# re: [database] 获取数据库自增类型生成的主键的方法 2007-07-02 14:12 | 三告习习
@paul
不好意思,或许写得不是很清楚,下面做一些注释

Connection conn = ... //这里是你的数据库连接
PreparedStatement state = this.connection.createStatement();//这个可以这样获取
state.executeUpdate();这句执行后,如果你是利用了数据库生成主键的办法来填充主键自动,rs = state.getGeneratedKeys();可用获取state所产生的主键,作为ResultSet的类型返回。
if (rs.next()) {//如果返回不为empty,那么取第一数据
ret = (Serializable) rs.getObject(1);//第一个字段值就是
}

上面的代码是我重代码中抽取出来的,所以并不是一个完整的函数,稍修改一下就可以使用了。  回复  更多评论
  

只有注册用户登录后才能发表评论。


网站导航: