База данных или CSV для объекта Java

На данный момент у меня есть CSV с несколькими столбцами в строках. В конце концов, у меня будет структура реляционной базы данных SQL. Мне было интересно, есть ли какие-либо библиотеки для простого извлечения этих данных в список объектов Java.

Пример:

название | расположение | дата
EventA | лос-анджелес, ca | 29.05.2014
МероприятиеB | Нью-Йорк, штат Нью-Йорк | 23.08.2013

Это структура данных в csv. У меня был бы объект Java с именем Event:

Event(String title, String location, String Date)

Мне известно о openCSV. Это мне нужно использовать для csv? Если это так, то какое другое решение для реляционной базы данных SQL?

Кроме того, можно ли читать csv только в основном методе?


person Brian    schedule 10.07.2013    source источник


Ответы (2)


Когда вы конвертируете в базу данных SQL, вы можете использовать dbutils Apache для низкоуровневого решения или Hibernate для высокоуровневого решения.

dbutils Вы можете реализовать ResultSetHandler для преобразования набора результатов в объект или, если это POJO, платформа может преобразовать его для вас. Примеры есть на сайте apache. http://commons.apache.org/proper/commons-dbutils/

Hibernate Существует множество руководств по работе с Hibernate. http://www.hibernate.org/

person Dan2.0    schedule 10.07.2013

Попробуйте JSefa, который позволяет аннотировать классы Java, которые можно использовать в сериализации и декодировании. процесс сериализации.

Из учебника:

Аннотации для CSV аналогичны XML.

@CsvDataType()
public class Person {
    @CsvField(pos = 1)
    String name;

    @CsvField(pos = 2, format = "dd.MM.yyyy")
    Date   birthDate;
}

Сериализация

Serializer serializer = CsvIOFactory.createFactory(Person.class).createSerializer();

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

Следующее не должно быть сюрпризом:

serializer.open(writer);
// call serializer.write for every object to serialize
serializer.close(true);

Результат

Эрвин Шмидт; 23 мая 1964 г.

Томас Штумм; 12.03.1979

person Juned Ahsan    schedule 10.07.2013