【问题标题】:Java File type into SQL Insert clauseJava 文件类型插入 SQL 插入子句
【发布时间】:2015-05-26 08:00:29
【问题描述】:

我遇到了一个尴尬的问题。

我需要在 SQL 表中插入一些值。

为此,我使用Insert 子句,如下所示:

INSERT INTO `USERS`(`ID`, `FILE`, `PROPERTIES`) VALUES ('1', FILE, '{"attributes":{"LANGUAGE":"ENG","AUTHOR":"John"}}')

我的问题是File 值。我不知道在这些情况下如何插入 File 对象。而且由于我无法传递值NULL,由于程序限制,我该怎么办?

【问题讨论】:

  • @Barett 我看不出这是怎么复制的!这是一个完全不同的问题......几乎相同的主题
  • 我不同意(那里给出的答案正是您问题的答案),但如果这对您来说信息不足,我会提供更多帮助。您使用的是什么持久性库:JPA、JDBC 还是其他?
  • 我正在使用dbinit.sql 文件在运行应用程序之前执行插入操作。我正在使用 JDBC 连接池,但这并不重要。我只想知道如何将 File 对象插入 SQL 表 @Barett
  • 如何执行查询很重要。请参阅下面的答案。

标签: java mysql sql file


【解决方案1】:

大多数持久性库不允许您直接执行此操作。 (据我所知没有)

  1. 使用IOUtils.toByteArray(InputStream input) 或等效方法将文件转换为字节数组

  2. (如果使用 JDBC)调用 PreparedStatement.setBytes(byte[] b) 将此值传递给数据库

替代解决方案:将实际文件放在某个已知的磁盘位置,并仅将文件名/路径存储在数据库中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-11-03
    • 2011-08-18
    • 1970-01-01
    • 1970-01-01
    • 2015-04-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多