如果数据表中已经存在一部分数据,那么需要执行如下的SQL语句,才能执行上传BLOB字段的操作,其中ATTACHMENT_FILE字段是BLOB类型的。
下面的UPDATE需要事先在数据库中执行一次后才能运行Java程序。
UPDATE XF_ATTACHMENT XA SETXA.ATTACHMENT_FILE = empty_blob()
如果先在数据表中insert一条记录之后再执行上传BLOB字段的操作,那么在insert语句中对应ATTACHMENT_FILE这个字段应该插入empty_blob()。例如:
INSERT INTO XF_ATTACHMENT
(ATTACHMENT_ID,
ATTACH_TABLE_NAME,
ATTACH_TABLE_KEY_ID,
ATTACHMENT_NAME,
ATTACHMENT_FILE,
ATTACHMENT_TYPE,
CREATED_BY,
CREATED_DATE,
LAST_UPDATE_BY,
LAST_UPDATE_DATE)
VALUES (?, ?, ?, ?, empty_blob(), ?,?, SYSDATE, ?, SYSDATE)
上面的INSERT语句是在Java中写的代码。
【注】:在定义DTO的时候BLOB类型的字段要定义成private byte[] attachmentFile = null; //附件内容这种模式,相应的set和get方法直接用MyEclipse的工具生成即可。