Ich habe viele Office Open XML-Dateien (OOXML) mit der XML-Erweiterung gespeichert und versuche, diese Dateien in eine MySQL-Datenbank einzufügen. Ich kann mich gut verbinden, und ich konnte Strings in verschiedene Datenbanken mit der gleichen Syntax einfügen. Aber wenn ich versuche, eine XML-Datei in ein Blob-Feld in der Datenbank einzufügen, sagt es mir, dass ich ein Problem mit meiner Syntax habe. Gibt es etwas Besonderes, das ich wegen des Formats der Dateien tun sollte?Einfügen einer Office Open XML-Datei (OOXML) in MySQL als 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.");
}
}
Dies ist der Fehler:
"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".
Auf meiner Konsole, ein paar der 0er als ein Fragezeichen anstatt in einer Box kommen.
Was Ihre Tabelle sieht wie und was zielst du? Möchten Sie wirklich drei Blobs in einem Datensatz speichern oder möchten Sie jeden Blob in einem eigenen Datensatz speichern? In jedem Fall fehlt Ihrer Abfrage ein Tabellenname: 'INSERT INTO tabellenname (col_name1, col_name2) VALUES (...), (...);' – rostbot
Meine Tabelle hat die Spaltennamen "Section1", "Section2" und " Sektion 3". Ich habe gerade die Syntax aktualisiert: String SQL = "INSERT INTO (Abschnitt1, Abschnitt2, Abschnitt3) Werte (?,?,?)"; Aber das hat noch nichts an dem Fehler geändert. –
Sie haben noch keinen Tabellennamen angegeben: 'String SQL =" INSERT INTO_Tabellenname_hier (Abschnitt1, Abschnitt2, Abschnitt3) Werte (?,?,?) ";' – rostbot