2015-07-29 5 views
1

Кто-то задал подобный вопрос здесь: 1Как экспортировать DBUnit результирующий набор из запроса

Этот код работает:

IDatabaseConnection connection = getConnection(); 
    ITableFilter filter = new DatabaseSequenceFilter(connection); 
    IDataSet dataset = new FilteredDataSet(filter, connection.createDataSet()); 
    FlatXmlDataSet.write(dataset, new FileOutputStream(file)); 

Он сваливает всю базу данных на плоский файл XML. Хорошо. Мы знаем, что мое имя пользователя/пароль/drivername/connection string и т. Д. Являются хорошими. Теперь как изменить его, чтобы я мог предоставить инструкцию SQL select и экспортировать результаты одного запроса?

Я сделал некоторый поиск Google и нашел этот код:

System.out.println("begin partial"); 
    IDatabaseConnection connection = getConnection(); 

    QueryDataSet partialDataSet = new QueryDataSet(connection); 
    partialDataSet.addTable("gov", "SELECT * FROM GOV_UNIT"); 
    partialDataSet.addTable("gov_unit"); 

    FlatXmlDataSet.write(partialDataSet, new FileOutputStream("partial-dataset.xml")); 
    System.out.println("end partial"); 

Это не создает файл «частичную dataset.xml», как я надеялся. Он просто печатает «начинать частичную» и «заканчивать частичную».

Может кто-нибудь помочь мне заставить этот код работать? Что я делаю не так? Конечно, когда вы получите это, я заменит простой запрос рекурсивным соединением, которое будет работать с моей базой данных postgresql.

Благодаря Зигфрид

ответ

0

Ваш код ОК. Эта строка FlatXmlDataSet.write(partialDataSet, new FileOutputStream("partial-dataset.xml"));, не создает XML-файл, вы должны создать его вручную раньше. Это все, что вам нужно.