简体   繁体   English

我们如何直接在Java中的mysql表中插入xml文件?

[英]How can we insert an xml file directly into a mysql table in java?

我们如何直接在Java中的mysql表中插入xml文件?

You can adapt your xml to specific mysql format using xslt and after it you can use LOAD_XML statement. 您可以使用xslt将xml调整为特定的mysql格式,然后再使用LOAD_XML语句。 http://dev.mysql.com/doc/refman/5.5/en/load-xml.html http://dev.mysql.com/doc/refman/5.5/en/load-xml.html

"xml file directly into a mysql " --> I am not clear what does it mean.But, you can insert any files to database as Binary Steam or byte array in java. “直接将xml文件导入mysql ”->我不清楚这是什么意思。但是,您可以将任何文件作为Binary Steam or byte array Java中的Binary Steam or byte array插入数据库。 Please check below example... 请检查以下示例...

EXAMPLE

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 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM