Как я могу использовать XML-файлы в качестве базы данных и получать к ним доступ через API JAX-B? - PullRequest
3 голосов
/ 26 ноября 2011

Я хочу создать легкое приложение с поддержкой базы данных, в котором данные могут храниться в формате XML, и использовать jaxB для перемещения данных в постоянное состояние и из него.

Однако я не имеюудалось найти любые хорошие ресурсы, касающиеся использования файла XML в качестве базы данных для живого приложения - хотя это неортодоксальный метод, для моего конкретного приложения он идеален (небольшие данные, должны быть доступны для редактирования пользователем, пользователи достаточно умныотредактировать XML без ошибок) .....

Мои опасения очевидны: блокировка / транзакции / и т.д. .... Если кто-то уже не решал эти проблемы, попытка использовать плохую идеюXML-файл как хранилище данных.Мне не нужно 100 транзакций в минуту ... Но некоторая степень поддержки целостности данных, конечно, в моих интересах.

Есть ли прецедент для такого применения JaxB?

Ответы [ 3 ]

3 голосов
/ 26 ноября 2011

Вы можете использовать DataNucleus frameowrk, это позволяет вам использовать JDO для доступа к «базе данных». База данных может быть XML-архивами (другие). Поэтому, если вы решите в любой момент перейти на СУРБД, воздействие будет минимальным. Проверьте следующий документ:

DataNucleus поддерживает сохранение / извлечение объектов в / из XML документы (используя плагин datanucleus-xml). Это использует JAXB.

http://www.datanucleus.org/products/accessplatform_3_0/xml/support.html

0 голосов
/ 29 ноября 2011

возможно, вы захотите использовать xPath для выполнения "запросов" к вашему файлу ... синтаксис здесь

Используйте DAO , чтобы легко структурировать вашу информацию ..

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

0 голосов
/ 27 ноября 2011

Это не должно быть очень сложно: если вам не нужно запрашивать содержимое, а просто выполнять поиск идентификаторов, вы можете хранить содержимое XML как BLOB (примечание: CLOB не так хороши, несмотря на то, что многие думают).Если это так, сериализуйте / десериализуйте, используя JAXB (byte [] из POJO, POJO из byte []), передайте это в DB, ​​используя JDBC.

...