在DAO中把记录插入数据库前,ID应该是空的吧?

解决方案 »

  1.   

    用book标记当前位置,重新查询之后返回这个book再获取ID
      

  2.   

    TO: jiangsheng(蒋晟.MSMVP2004Jan)
    book是什么?
      

  3.   

    提个思路,很早以前这么做的,做法不规范,正在整理那时候的文档,郁闷死了:)
    (1)数据库中增加一个主键表,保存所有表将要插入新记录的新主键值,该表的记录数是确定的
    (2)对每个表编写基本DAO
    (3)写一个专门的静态方法,通过PrimaryKeyDAO读写主键表,放在工具集合类中
    (4)在每个DAO的insert方法中通过工具集合类的方法读取和更新主键表(或者任何其他合适的地方),当然可以返回这个PK
    当时的目的是为了剥离数据库功能和生成复杂主键,代码写的相当“临时”,没有严格按照上面的思路和DAO规范写,拿出来会被笑死的,就不献丑了:)
      

  4.   

    mssql中插入完成以后,立即用SELECT ISNULL(@@IDENTITY,-1) AS [identity]  其他数据库就不知道了, 好象在jdbc3中,可以直接通过返回的值取得resultset.getGeneratedKeys()
      

  5.   

    TO: jiangsheng(蒋晟.MSMVP2004Jan)
    jdbc有这属性吗?
      

  6.   

    TO: bixuehui(bxh)在jdbc中怎么查序列?
      

  7.   

    比如序列名称是aaa:
    select aaa.nextval id from dual