Это зависит от многих факторов. Если ваш XML слишком велик (> 1 ГБ или сопоставим с вашей общей памятью), тогда вам следует использовать SAX, и я не думаю, что будут другие решения. Если он небольшой (скажем, меньше 100 МБ), просто загрузите весь XML в объект Document, используя JAXP:
DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder parser = documentBuilderFactory.newDocumentBuilder();
Document doc = parser.parse(source);
Возможно, у вас есть элементы или атрибуты, сопоставленные со столбцами в БД. Затем вы можете запросить элементы / атрибуты с помощью XPath для простоты и записать их в БД. Если это однократное преобразование, я рекомендую использовать простой JDBC. Не думайте о JPA или Hibernate, поскольку это просто увеличивает время разработки для обычного сценария преобразования данных.