【问题标题】:How to insert blob data into the embedded HSQLDB of Spring through the sql script?如何通过sql脚本将blob数据插入到Spring的嵌入式HSQLDB中?
【发布时间】:2014-12-18 19:23:54
【问题描述】:

这是我创建数据库的 sql 脚本:

create table product 
(id integer identity primary key,
name varchar(50) not null,
price decimal(10,2) not null,
image blob(1024),
category_id integer);

这是我的sql脚本,将数据插入数据库:

INSERT INTO product VALUES (1, 'ProductName', 699.95, load_file('full_path'), 1);

根据 HSQLDB,完整路径默认是数据库位置的相对路径。那么我必须为位于 /resources/img/ 下的图像文件提供什么文件路径? (Spring使用这个URL创建数据库:jdbc:hsqldb:mem:testdb)

【问题讨论】:

    标签: spring spring-data hsqldb spring-data-jpa sql-scripts


    【解决方案1】:

    可以如下推导出类路径资源的绝对路径,

    new ClassPathResource("img/abc.gif").getFile().getAbsolutePath()
    

    【讨论】:

    • “来自 sql 脚本”。不是来自java。
    【解决方案2】:

    我在使用 HSQLDB 配置测试时遇到了同样的问题。好像HSQLDB只支持load_file('full_path'),它只接受absolute file-paths

    或者,为了达到相同的结果,在 H2 DB 中使用 Embedded DB Configuration

    H2 配置中的以下查询将是相同的查询。

    INSERT INTO product VALUES (1, 'ProductName', 699.95, FILE_READ('classpath:filename.ext');
    

    【讨论】:

      【解决方案3】:

      查看param textdb.allow_full_path的描述。

      它允许您使用不同的文件路径变体。

      【讨论】:

        猜你喜欢
        • 2011-02-06
        • 2016-11-16
        • 1970-01-01
        • 2013-01-22
        • 2014-09-05
        • 1970-01-01
        • 1970-01-01
        • 2013-03-16
        • 2014-09-09
        相关资源
        最近更新 更多