Экспорт данных из базы данных в файл XML - PullRequest
3 голосов
/ 24 июня 2011

Как я могу экспортировать данные из базы данных и сохранить их в файле XML, используя Hibernate с аннотацией.

Скажите, пожалуйста, любой способ или учебное пособие, которое может мне помочь!

1 Ответ

3 голосов
/ 24 июня 2011

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 "формула1.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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...