2011-06-24 29 views

答えて

3

Xml Import-Export In Java

データベースの準備:

SerializeExample.java: setObjects 
private static void setObjects() { 
    new File(DB4O_FILE_NAME).delete(); 
    ObjectContainer container = Db4o.openFile(DB4O_FILE_NAME); 
    try { 
     Car car = new Car("BMW", new Pilot("Rubens Barrichello")); 
     container.store(car); 
     car = new Car("Ferrari", new Pilot("Michael Schumacher")); 
     container.store(car); 
    } finally { 
     container.close(); 
    } 
    } 

私たちは、XMLファイルに "formula1.xml" データベースを保存します:

SerializeExample.java: exportToXml 
private static void exportToXml() { 
    XStream xstream = new XStream(new DomDriver()); 
    try { 
     FileWriter xmlFile = new FileWriter(XMLXML_FILE_NAME); 
     ObjectContainer container = Db4o.openFile(DB4O_FILE_NAME); 
     try { 
     ObjectSet result = container.query(Car.class); 
     Car[] cars = new Car[result.size()]; 
     for (int i = 0; i < result.size(); i++) { 
      Car car = (Car) result.next(); 
      cars[i] = car; 
     } 
     String xml = xstream.toXML(cars); 
     xmlFile.write("<?xml version=\"1.0\"?>\n" + xml); 
     xmlFile.close(); 
     } finally { 
     container.close(); 
     } 
    } catch (Exception ex) { 
     System.out.println(ex.getMessage()); 
    } 
    } 

を今、私たちはデータベースをクリーンアップして再作成しようとすることができますそれはXMLファイルからです:

SerializeExample.java: importFromXml 
private static void importFromXml() { 
    new File(DB4O_FILE_NAME).delete(); 
    XStream xstream = new XStream(new DomDriver()); 
    try { 
     FileReader xmlReader = new FileReader(XMLXML_FILE_NAME); 
     Car[] cars = (Car[]) xstream.fromXML(xmlReader); 
     ObjectContainer container; 
     for (int i = 0; i < cars.length; i++) { 
     container = Db4o.openFile(DB4O_FILE_NAME); 
     try { 
      Car car = (Car) cars[i]; 
      container.store(car); 
     } finally { 
      container.close(); 
     } 
     } 
     container = Db4o.openFile(DB4O_FILE_NAME); 
     try { 
     ObjectSet result = container.query(Pilot.class); 
     listResult(result); 
     result = container.query(Car.class); 
     listResult(result); 
     } finally { 
     container.close(); 
     } 
     xmlReader.close(); 
    } catch (Exception ex) { 
     System.out.println(ex.getMessage()); 
    } 
    } 

Sample Code

関連する問題