将Office Open XML(OOXML)文件作为blob插入MySQL

将Office Open XML(OOXML)文件作为blob插入MySQL,mysql,sql,xml,blob,openxml,Mysql,Sql,Xml,Blob,Openxml,我用扩展名XML保存了很多Office Open XML(OOXML)文件,我正在尝试将这些文件插入MySQL数据库。我可以很好地连接,并且我能够用相同的语法将字符串插入到不同的数据库中。但是,当我尝试将XML文件插入数据库中的blob字段时,它会告诉我语法有问题。由于文件的格式,我是否应该做一些特殊的事情 public Insertion(Connection conn) throws SQLException, FileNotFoundException{ System.out.p

我用扩展名XML保存了很多Office Open XML(OOXML)文件,我正在尝试将这些文件插入MySQL数据库。我可以很好地连接,并且我能够用相同的语法将字符串插入到不同的数据库中。但是,当我尝试将XML文件插入数据库中的blob字段时,它会告诉我语法有问题。由于文件的格式,我是否应该做一些特殊的事情

public Insertion(Connection conn) throws SQLException, FileNotFoundException{

    System.out.println("Trying to insert Data..");

    String filePath1 = "C:/Users/SAVAGD05/Documents/RMP/Section1.XML";
    InputStream inputStream1 = new FileInputStream(new File(filePath1));
    String filePath2 = "C:/Users/SAVAGD05/Documents/RMP/Section1.XML";
    InputStream inputStream2 = new FileInputStream(new File(filePath2));
    String filePath3 = "C:/Users/SAVAGD05/Documents/RMP/Section1.XML";
    InputStream inputStream3 = new FileInputStream(new File(filePath3));

    System.out.println("It did this part");

    String SQL = "INSERT INTO (1,2,3) values(?,?,?)";
    PreparedStatement statement = conn.prepareStatement(SQL);


    statement.setBlob(1, inputStream1);
    statement.setBlob(2, inputStream2);
    statement.setBlob(3, inputStream3);
    statement.executeUpdate();


    System.out.println("Data inserted.");
    conn.close();
    System.out.println("Connection Closed");
    System.out.println("Have a Nice Day and Goodbye.");
    }


}
这就是错误:

线程“main”中的“异常”
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:您有一个 SQL语法错误;请检查与您的SQL语法对应的手册 MySQL服务器版本,以便使用正确的语法(1,2,3) 值(\u二进制'PK\0\0\0\0\0!\0?RH?\0\0?\0\0\0[内容类型]。' 在第1行”


在我的控制台上,一些0在一个框中显示为问号。

好吧,哇,我意识到这只是一个小的语法错误。 这:

需要:

 String SQL = "INSERT INTO sections(idSections,Section1,Section2,Section3) values(?,?,?,?)";
因为我需要声明表名并给id字段一个值


事实证明,xml扩展中的ooxml数据没有问题,因为生成的查询可以用MS Word打开(这正是我的目标/需要)

您的表是什么样子,您的目标是什么?您真的想将三个blob保存到一个记录中,还是想将每个blob保存到自己的记录中?在每种情况下,您的查询都缺少一个表名:
插入表名(col\u name1,col\u name2)值(…),(…);
我的表有列名“Section1”,“Section2”和“Section3”。我刚刚将语法更新为:String SQL=“插入(Section1,Section2,Section3)值(?,?)”,但这仍然没有改变有关错误的任何内容。您仍然没有指定表名:
String SQL=“在此处插入(Section1,Section2,Section3)值(?,?)”我刚做完。不过谢谢你的帮助。
 String SQL = "INSERT INTO sections(idSections,Section1,Section2,Section3) values(?,?,?,?)";