数据库或CSV到java对象

时间:2013-07-10 17:02:30

标签: java database csv pojo opencsv

现在我有一个包含几列行的CSV。最终,我将拥有一个SQL关系数据库结构。我想知道是否有任何库可以轻松地将这些数据提取到java对象列表中。

示例:

标题|位置|日期
EventA |洛杉矶,加州2014年5月29日
EventB |纽约州纽约市2013年8月23日

这是csv中数据的结构。我会有一个名为Event的

的java对象
Event(String title, String location, String Date)

我知道openCSV。这是我需要用于csv吗?如果是这种情况,那么SQL关系数据库的不同解决方案是什么?

另外,只能在main方法中读取csv吗?

2 个答案:

答案 0 :(得分:1)

当你转换为SQL数据库时,你可以使用Apache的dbutils作为低级解决方案,或者使用Hibernate作为高级解决方案。

dbutils 您可以实现ResultSetHandler将结果集转换为对象,或者如果它是POJO,框架可以为您转换它。 apache网站上有一些例子。 http://commons.apache.org/proper/commons-dbutils/

休眠 有很多关于使用Hibernate的教程。 http://www.hibernate.org/

答案 1 :(得分:0)

尝试JSefa,它允许您注释可在序列化和反序列化过程中使用的Java类。

来自tutorial

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);

结果

  

Erwin Schmidt; 23.05.1964

     

Thomas Stumm; 1979年3月12日