3

How can I export data from database and store it in an XML file using Hibernate with annotation.

Please tell me any way or tutorial that can help me!

1 Answer 1

3

Xml Import-Export In Java

Prepare Database:

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();
    }
  }

We will save the database to XML file "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());
    }
  }

Now we can clean the database and try to recreate it from the XML file:

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

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.