在java中,如何将xml文件直接插入mysql表?

在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

如何将xml文件直接插入java中的mysql表?

您可以使用xslt将xml调整为特定的mysql格式,然后使用LOAD_xml语句。

您可以使用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转换为所示格式。