我试图在 h2 嵌入式数据库中插入 blob 数据,但它从类路径/URI 失败。但是它适用于绝对路径

Posted

技术标签:

【中文标题】我试图在 h2 嵌入式数据库中插入 blob 数据,但它从类路径/URI 失败。但是它适用于绝对路径【英文标题】:i am trying to insert blob data in h2 embedded database , but it fails from classpath/URI . However it works fine with absolute path 【发布时间】:2018-04-09 13:46:10 【问题描述】:

我正在使用 spring boot 1.5.10.RELEASE,它使用 H2 1.4.196 版本。

请您帮忙解释一下为什么 URI 或类路径不起作用?

文件:/src/main/resources/samplepdfs下的test1.pdf

INSERT INTO CBM_DATA(DATA) VALUES () --> 返回空数据(文件托管在 Intranet 上,因此无法共享 URL(使用 https),我无需任何凭据即可访问文件

INSERT INTO CBM_DATA(DATA) VALUES ('classpath:/samplepdfs/test1.pdf') --> 返回空数据

【问题讨论】:

INSERT INTO CBM_DATA( DATA ) VALUES (FILE_READ( > )) INSERT INTO CBM_DATA( DATA ) VALUES (FILE_READ('classpath:/samplepdfs/test1.pdf' )) DATA 是一个数据库中的 BLOB 【参考方案1】:

有点旧,但可能与这个问题有关?

https://github.com/h2database/h2database/issues/446

(由于 0 字节文件长度,来自类路径的 FILE_READ 不起作用)

【讨论】:

以上是关于我试图在 h2 嵌入式数据库中插入 blob 数据,但它从类路径/URI 失败。但是它适用于绝对路径的主要内容,如果未能解决你的问题,请参考以下文章

嵌入式 h2 数据库未运行

嵌入式。 H2 DB自动增量(Java测试用例)

使用 mvn jetty:run 运行嵌入式 H2 数据库

我们如何从h2数据库中提取blob数据类型列的数据?

H2数据库释放锁

H2 BLOB 数据类型大小