直接上代码:int address_id = connection.prepareStatement("insert into address(id,version) value(null,0)").executeUpdate();
String sql = "insert into patient values(null,null,0,?,null,?,?,?,null,?)";
connection.prepareStatement(sql);
ps.setInt(1,address_id);
...我将以上两个insert语句放在同一个事务中,现在主要的问题是第二个insert里面有个字段(address_id)需要使用到第一个insert操作返回的id。   如果我放在同一个事务中,那么第二个的address_id每次都为1.    主键都是自增长的。   求解决    事务 

解决方案 »

  1.   

    第2 个语句用LAST_INSERT_ID()取得插入的ID值
      

  2.   

    谢谢版主
    其实这个只是我抽出一部分代码。。
    如果我不止address_id一个字段,还有其他的字段需要这样处理,LAST_INSERT_ID()是否还可以满足吗?
      

  3.   

    只有自增字段才能用LAST_INSERT_ID()
      

  4.   

    那就select出来你先想要的字段 给变量 然后再插入  这样的逻辑你可以写一个存储过程