我有很多使用扩展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语法错误;查看与您的手册相对应的手册 MySQL服务器版本正确的语法使用附近'(1,2,3) 值(4.1.x或更高版本' PK \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 RH \ 0 \ 0 \ 0 \ 0 \ 0 [CONTENT_TYPES]&#39!????。 在第1行"。
在我的控制台上,0中的一些作为问号在一个框中出现。
答案 0 :(得分:3)
好的,哇,我已经意识到这只是一个小的语法错误。 这个:
String SQL = "INSERT INTO (1,2,3) values(?,?,?)";
需要:
String SQL = "INSERT INTO sections(idSections,Section1,Section2,Section3) values(?,?,?,?)";
因为我需要说明表名,并给id字段赋值。
xml扩展中的ooxml数据没有问题,因为生成的查询可以在MS Word中打开(这是我想要的/想要的)