当前位置: 代码迷 >> J2EE >> 在一个service层写了两个dao的save。小弟我如何获取到第一个dao保存过得到的ID,因为小弟我要在第二个dao用
  详细解决方案

在一个service层写了两个dao的save。小弟我如何获取到第一个dao保存过得到的ID,因为小弟我要在第二个dao用

热度:104   发布时间:2016-04-17 23:46:23.0
在一个service层写了两个dao的save。我怎么获取到第一个dao保存过得到的ID,因为我要在第二个dao用。
不知道我说的你们看懂没
------解决方案--------------------
用的什么数据库?

如果是mysql的话,且主键为自动递增,有select LAST_INSERT_ID()
oracle中貌似也用Sequence
------解决方案--------------------
你可以这样处理,先用个变量存储取得要插入第一条记录序列号。然后在插入第二条记录的时候,在把变量值传过去就可以了。
------解决方案--------------------
如果你使用的SSH的架构,直接获取对象的ID就好,如果不是,那 就需要你保存对象前,手动生成好ID,然后设置给保存的对象,这样在第二个对象也可以从对象中获取到ID
------解决方案--------------------
第一吧保存了以后,直接getId()就可以拿到insert后的id了
------解决方案--------------------
第一个save保存,然后用第一个的条件去查询出第一个保存的id, 然后用于第二个的save就行了
------解决方案--------------------
如果是自动增长,先查询最大的id ,保存第一个 如果成功,把id+1 直接执行第二个save 。
------解决方案--------------------
引用:
第一吧保存了以后,直接getId()就可以拿到insert后的id了


同意,如果你用的hibernate来管理的话,save之后,就可以用getId得到主键了,不需要再次查询什么的。 或者干脆自己用UUID来管理主键
  相关解决方案