Java 获取插入后自动生成的所有值

Java 获取插入后自动生成的所有值,java,mysql,jdbc,mysql-connector,Java,Mysql,Jdbc,Mysql Connector,将新行插入数据库表后,可以获得生成的主键的值,如下所示: PreparedStatement语句=connection.prepareStatementquery,statement.RETURN\u生成的\u键; ResultSet keys=statement.getGeneratedKeys; 但是如何检索其他非键的自动生成的值呢。假设我的表定义如下所示: 创建表foo id INT主键自动递增, 更新当前\u时间戳时更改的时间戳默认当前\u时间戳 ; 是否可以在不需要使用返回的主键再次查

将新行插入数据库表后,可以获得生成的主键的值,如下所示:

PreparedStatement语句=connection.prepareStatementquery,statement.RETURN\u生成的\u键; ResultSet keys=statement.getGeneratedKeys; 但是如何检索其他非键的自动生成的值呢。假设我的表定义如下所示:

创建表foo id INT主键自动递增, 更新当前\u时间戳时更改的时间戳默认当前\u时间戳 ;
是否可以在不需要使用返回的主键再次查询数据库的情况下更改列的值?

否,数据更改语句INSERT,UPDATE不返回更改/插入的字段的值。您可以请求最后一个键,但即使这是一个附加的DBMS调用。

在这种情况下,建议创建一个存储过程,该过程执行插入并返回所有需要的值,然后从数据层调用它。通常,我认为这不是一个好的做法,因为存储过程永远不会给您提供插入和选择的灵活性。这意味着您需要维护的代码的大小将增加一倍。此外,访问层可能无法全部正确处理返回结果的SP。当然,在特定情况下,这本身并没有错。如果你真的需要,我只建议你仔细考虑。