如何使用Java将多个XML文件加载到MySQL

时间:2019-03-13 05:43:13

标签: java mysql

我想在一个Java代码中将多个Xml文件加载到MySQL。 我能够一次加载单个xml文件,下面给出了我的代码

public static void main(String args[]) {
        String fileName="D:\\sample.xlsx";
        Vector dataHolder=read(fileName);
        saveToMySQL(dataHolder);
    }

从XML读取数据的代码

public static Vector read(String fileName)    {
            Vector cellVectorHolder = new Vector();
            try{
                FileInputStream myInput = new FileInputStream(fileName);
                //POIFSFileSystem myFileSystem = new POIFSFileSystem(myInput);
                XSSFWorkbook myWorkBook = new XSSFWorkbook(myInput);
                XSSFSheet mySheet = myWorkBook.getSheetAt(0);
                Iterator rowIter = mySheet.rowIterator();
                while(rowIter.hasNext()){
                    XSSFRow myRow = (XSSFRow) rowIter.next();
                    Iterator cellIter = myRow.cellIterator();
                    //Vector cellStoreVector=new Vector();
                    List list = new ArrayList();
                    while(cellIter.hasNext()){
                        XSSFCell myCell = (XSSFCell) cellIter.next();
                        list.add(myCell);
                    }
                    cellVectorHolder.addElement(list);
                }
            }catch (Exception e){e.printStackTrace(); }
            return cellVectorHolder;
        }

将XML数据写入MySQL的代码

 private static void saveToMySQL(Vector dataHolder) {
                String id="";
                String diagramName="";
                String startNode="";
                String endNode="";

                System.out.println(dataHolder);

                for(Iterator iterator = dataHolder.iterator();iterator.hasNext();) {
                    List list = (List) iterator.next();
                    id = list.get(0).toString();
                    diagramName = list.get(1).toString();
                    startNode = list.get(2).toString();
                    endNode = list.get(3).toString();

                    try {
                        Class.forName("com.mysql.jdbc.Driver").newInstance();
                        Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "welcome");
                        System.out.println("connection made...");
                        PreparedStatement stmt = con
                                .prepareStatement("INSERT INTO SampleDB(id,diagramName,startNode,endNode) VALUES(?,?,?,?)");
                        stmt.setString(1, id);
                        stmt.setString(2, diagramName);
                        stmt.setString(3, startNode);
                        stmt.setString(4, endNode);
                        stmt.executeUpdate();

                        System.out.println("Data is inserted");
                        stmt.close();
                        con.close();
                    } catch (ClassNotFoundException e) {
                        e.printStackTrace();
                    } catch (SQLException e) {
                        e.printStackTrace();
                    } catch (InstantiationException e) {
                        e.printStackTrace();
                    } catch (IllegalAccessException e) {
                        e.printStackTrace();
                    }
                }
         }

是否可以将多个XML文件导入数据库 如何更改此代码以将多个Xml导入MySQL DB

0 个答案:

没有答案