[英]How can we insert an xml file directly into a mysql table in java?
我们如何直接在Java中的mysql表中插入xml文件?
您可以使用xslt将xml调整为特定的mysql格式,然后再使用LOAD_XML语句。 http://dev.mysql.com/doc/refman/5.5/en/load-xml.html
“直接将xml文件导入mysql
”->我不清楚这是什么意思。但是,您可以将任何文件作为Binary Steam or byte array
Java中的Binary Steam or byte array
插入数据库。 请检查以下示例...
例
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
CREATE TABLE ATTACHMENT (
FILENAME VARCHAR(45) NOT NULL,
MIMETYPE VARCHAR(45) NOT NULL,
CONTENT LONGBLOB NOT NULL
)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.