我想在一个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