Abh*_*der 5 java mysql java-ee jooq
我正在尝试使用以下代码来获取自动生成的ID。我的后端是MySQL。代码看起来像这样
Record record = create.insertInto(CANDIDATE, CANDIDATE.FIRST_NAME,
CANDIDATE.LAST_NAME,CANDIDATE.EXTRACTED_NAME)
.values("Charlotte", "Roche","Charlotte Roche")
.returning(CANDIDATE.ID)
.fetchOne();
System.out.println(record.getValue(CANDIDATE.ID));
Run Code Online (Sandbox Code Playgroud)
我收到NullPointerException。我看了http://www.jooq.org/javadoc/latest/org/jooq/InsertReturningStep.html。它说
Derby,H2,Ingres,MySQL, SQL Server仅允许将IDENTITY列值检索为“生成的键”。如果要求其他字段,则发出第二条语句。客户代码必须确保两个语句之间的事务完整性。
根据我在Mysql中的理解,auto_increment用作IDENTITY。任何人都可以请教一些如何实现MySQL的方法
Result<?> record =
create.insertInto(CANDIDATE, CANDIDATE.FIRST_NAME, CANDIDATE.LAST_NAME,CANDIDATE.EXTRACTED_NAME)
.values("Charlotte", "Roche","Charlotte Roche")
.returning(CANDIDATE.ID)
.fetch();
System.out.println(record.size());
Run Code Online (Sandbox Code Playgroud)
虽然它在后端插入记录,但是将record.size()打印为零
可能是交易有问题。插入可能尚未将这些值保留在数据库中,因此不会获取任何内容。
另外我认为MySQL的IDENTITY不是由AUTO_INCRMENT而是由主键(...) https://dev.mysql.com/doc/refman/5.0/en/example-auto-increment.html