我有一个带有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上模仿它。
提前致谢。
答案 0 :(得分:0)
您不需要CallableStatement来插入blob,这是一个简单的预处理语句
insert into table(imagen) values(?)
有效,如果在准备期间使用Statement.RETURN_GENERATED_KEYS,并且在执行后使用Statement.getGeneratedKeys(),则可以获得自动生成的值。你也可以
select last_insert_id()
任何时候,但这效率较低。
没有MariaDB 5.6顺便说一句。