java8 + mariadb 5.6:插入blob时如何获取自动生成的值

时间:2018-04-09 13:26:22

标签: java mysql mariadb

我有一个带有2个cols的mariadb表:rowid int pk autogenerated和imagen blob。

使用" CallableStatement语句= mariaConn.prepareCall(myinsert);"我能够将带有blob的新行添加到" imagen"但我无法获得自动生成的pk col" rowid"。

另一方面,使用" Statement语句= mariaConn.prepareStatement(myinsert);"我可以获得自动生成的col" rowid"但我无法在" imagen"中添加blob。 (只有在它是空的时候才会这样做。)

有没有办法在一次通话中做两件事? (试图避免使用Statement插入来获取pk,然后使用CallableStatement来更新blob)。

注意:在Oracle中使用CallableStatement非常简单,因为Oracle的插入有"返回"条款< =我试图在mariadb上模仿它。

提前致谢。

1 个答案:

答案 0 :(得分:0)

您不需要CallableStatement来插入blob,这是一个简单的预处理语句

insert into table(imagen) values(?)

有效,如果在准备期间使用Statement.RETURN_GENERATED_KEYS,并且在执行后使用Statement.getGeneratedKeys(),则可以获得自动生成的值。你也可以

select last_insert_id()

任何时候,但这效率较低。

没有MariaDB 5.6顺便说一句。