在java中,如何将xml文件直接插入mysql表?
如何将xml文件直接插入java中的mysql表?您可以使用xslt将xml调整为特定的mysql格式,然后使用LOAD_xml语句。在java中,如何将xml文件直接插入mysql表?,java,mysql,Java,Mysql,如何将xml文件直接插入java中的mysql表?您可以使用xslt将xml调整为特定的mysql格式,然后使用LOAD_xml语句。 您可以使用xslt将xml调整为特定的mysql格式,然后使用LOAD_xml语句。 “将xml文件直接插入mysql”-->我不清楚这是什么意思。但是,您可以在java中将任何文件作为二进制数据流或字节数组插入数据库。 请检查下面的示例 范例 public class InsertXML { private static final String IN
您可以使用xslt将xml调整为特定的mysql格式,然后使用LOAD_xml语句。 “将xml文件直接插入
mysql
”-->我不清楚这是什么意思。但是,您可以在java中将任何文件作为二进制数据流或字节数组插入数据库。
请检查下面的示例
范例
public class InsertXML {
private static final String INSERT_SQL = "INSERT INTO ATTACHMENT(FILENAME, MIMETYPE, CONTENT) values(?, ?, ?)";
public void insert(File xmlFile) {
PreparedStatement ps = null;
Connection con = null;
try {
ps = con.prepareStatement(INSERT_SQL);
ps.setString(1, xmlFile.getName());
ps.setString(2, getMimeType(xmlFile));
ps.setBinaryStream(3, new FileInputStream(xmlFile));
ps.executeUpdate();
} catch (SQLException e) {
// CLOSE ps and con;
} catch (FileNotFoundException e) {
// CLOSE ps and con;
} finally {
// CLOSE ps and con;
}
}
public String getMimeType(File xmlFile) {
String mimeType = null;
try {
InputStream is = new BufferedInputStream(new FileInputStream(xmlFile));
mimeType = URLConnection.guessContentTypeFromStream(is);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return mimeType;
}
public static void main(String[] args) {
InsertXML insertXML = new InsertXML();
insertXML.insert(new File("D:\test.xml"));
}
}
SQL
“将xml文件直接插入mysql
”-->我不清楚这是什么意思。但是,您可以在java中将任何文件作为二进制数据流或字节数组插入数据库。
请检查下面的示例
范例
public class InsertXML {
private static final String INSERT_SQL = "INSERT INTO ATTACHMENT(FILENAME, MIMETYPE, CONTENT) values(?, ?, ?)";
public void insert(File xmlFile) {
PreparedStatement ps = null;
Connection con = null;
try {
ps = con.prepareStatement(INSERT_SQL);
ps.setString(1, xmlFile.getName());
ps.setString(2, getMimeType(xmlFile));
ps.setBinaryStream(3, new FileInputStream(xmlFile));
ps.executeUpdate();
} catch (SQLException e) {
// CLOSE ps and con;
} catch (FileNotFoundException e) {
// CLOSE ps and con;
} finally {
// CLOSE ps and con;
}
}
public String getMimeType(File xmlFile) {
String mimeType = null;
try {
InputStream is = new BufferedInputStream(new FileInputStream(xmlFile));
mimeType = URLConnection.guessContentTypeFromStream(is);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return mimeType;
}
public static void main(String[] args) {
InsertXML insertXML = new InsertXML();
insertXML.insert(new File("D:\test.xml"));
}
}
SQL
短回答-不,长回答-你不能。@sᴜʀᴇsʜᴀᴛᴛᴀ 这不是一根绳子吗?@JasonSperske他不想放绳子,他不想放整个文件。可能的解决方案是只将数据(即xml内容)存储为字符串,或者在服务器上维护/存储该文件。短答案-不,长答案-您不能。@sᴜʀᴇsʜᴀᴛᴛᴀ 这不是一根绳子吗?@JasonSperske他不想放绳子,他不想放整个文件。可能的解决方案是只存储数据,即xml内容作为字符串或在服务器上维护/存储该文件XSLT是一种方法;任何将文件结构与mysql参考中给出的示例相匹配的方法都是可行的。例如,可以使用perl脚本将现有XML转换为所示格式;任何将文件结构与mysql参考中给出的示例相匹配的方法都是可行的。例如,可以使用perl脚本将现有XML转换为所示格式。