Java 当sql事务自动提交关闭时,我可以获取主键id吗?

Java 当sql事务自动提交关闭时,我可以获取主键id吗?,java,Java,嗯,我有一个客户资料和联系电话。比如说,用户A有两部手机。如果我设置了connection.setAutoCommit(false)在我的Java端,将有2个存储过程来运行此事务:(1)添加配置文件和(2)循环以添加移动电话。如何在CustomerId设置为提交之前获取它?这将是一个潜在的问题,数据一致性时,将有一个新的客户ID提交在中间? 待定客户 CustomerId (PK, NOT NULL, UNIQUE, AUTO_INCREMENT) CustomerName Address (e

嗯,我有一个客户资料和联系电话。比如说,用户A有两部手机。如果我设置了
connection.setAutoCommit(false)在我的Java端,将有2个存储过程来运行此事务:(1)添加配置文件和(2)循环以添加移动电话。如何在CustomerId设置为提交之前获取它?这将是一个潜在的问题,数据一致性时,将有一个新的客户ID提交在中间?
待定客户

CustomerId (PK, NOT NULL, UNIQUE, AUTO_INCREMENT)
CustomerName
Address
(etc)
tbl\U联系人

ContactId (PK, NOT NULL, UNIQUE, AUTO_INCREMENT)
CustomerId (FK REFERENCES tbl_customer(CustomerId), CONSTRAINT)
ContactType
ContactNumber

这取决于所使用的数据库和JDBC驱动程序。没有通用的答案。正如@LuiggiMendoza所指出的,这取决于您的数据库/存储过程/JDBC驱动程序的使用等。但是,一般来说,当插入到客户时,会生成并锁定下一个id。在同一事务中,如果新的CusomterId设置为联系人表中的外键引用,则它应该可用。