日期:2014-05-20  浏览次数:20677 次

jdbc操作如何做级联新增数据
情况如下   我有两个表A   和B     两者是一对多的关系   级B里面有一个A的id,A的id是自增类型
现在我有A和B的两部分信息   ,希望同时保存A和B   然后在B当中存放A的id

相当于  
insert   into   A   values(xxxx)
  select   A.id     from   last   update       //我如何来实现这一步?
  insert   into   B   values(A.id,xxxx);


本来考虑select   max(A.id)   from   A
但是如果在执行了insert   into   A   之后,select   max(A.id)   from   A   之前又有insert   into   A的操作,那么逻辑上就出现问题

要是能锁定整个表直到完成select   max(A.id)   from   A   也能解决问题

目前我用的是mysql   5   ,不知道能否处理?   或者其他数据库有此功能也可说明一下


整个功能类似hibernate的级联操作,但是必须要jdbc来操作。

另外不知道是否可以使用transaction来实现锁表,请各位指教

------解决方案--------------------
用Guid当主键,或者用@@Identity
------解决方案--------------------
sqlserver2000的话,应该使用select scope_identity()
建议看看联机丛书,scope_identity()是当前连接任意表的上一个id,@@identity是全局任意表的上一个id,还有一个ident_current()是任意连接指定表的上一个id,用法是不同的。