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

时间:2021-08-10 07:13:55

I have a lot of Office Open XML (OOXML) files saved with the extension XML and I'm trying to insert these files into a MySQL database. I can connect okay, and I've been able to insert strings into different databases with the same syntax. But when I try to insert an XML file into a blob field in the database it tells me I have a problem with my syntax. Is there something special I should be doing because of the format of the files?

我有很多使用扩展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.");
    }


}

This is the error:

这是错误:

"Exception in thread "main"
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(1,2,3) values(_binary'PK\0\0\0\0\0!\0?RH?\0\0?\0\0\0[Content_Types].' at line 1".

“线程中的异常”主“com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:您的SQL语法中有错误;请查看与您的MySQL服务器版本对应的手册,以便在'附近使用正确的语法'(1,2 ,3)值(_binary'PK \ 0 \ 0 \ 0 \ 0 \ 0!\ 0?RH?\ 0 \ 0?\ 0 \ 0 \ 0 [Content_Types]。'在第1行“。

On my console, a few of the 0s come out as a question mark in a box instead.

在我的控制台上,一些0在一个方框中作为问号出现。

1 个解决方案

#1


3  

Okay wow I've realised it was just a small syntax error. This:

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

String SQL = "INSERT INTO (1,2,3) values(?,?,?)";

Needed to be:

需要是:

 String SQL = "INSERT INTO sections(idSections,Section1,Section2,Section3) values(?,?,?,?)";

as I needed to state the table name as well as give the id field a value.

因为我需要说明表名,并给id字段一个值。

There isn't a problem with the ooxml data in an xml extension as it turns out since the resulting query can be opened in MS Word (Which is what I aimed for/wanted)

xml扩展中的ooxml数据没有问题,因为结果查询可以在MS Word中打开(这是我想要的/想要的)

#1


3  

Okay wow I've realised it was just a small syntax error. This:

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

String SQL = "INSERT INTO (1,2,3) values(?,?,?)";

Needed to be:

需要是:

 String SQL = "INSERT INTO sections(idSections,Section1,Section2,Section3) values(?,?,?,?)";

as I needed to state the table name as well as give the id field a value.

因为我需要说明表名,并给id字段一个值。

There isn't a problem with the ooxml data in an xml extension as it turns out since the resulting query can be opened in MS Word (Which is what I aimed for/wanted)

xml扩展中的ooxml数据没有问题,因为结果查询可以在MS Word中打开(这是我想要的/想要的)