0

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

例子:

标题 | 位置 | 日期
事件A | 加利福尼亚州洛杉矶 | 05-29-2014
活动B | 纽约州纽约 | 08-23-2013

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

Event(String title, String location, String Date)

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

另外,读取 csv 是否只能在 main 方法中完成?

4

2 回答 2

1

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

结果

欧文·施密特;1964 年 5 月 23 日

托马斯·斯图姆;1979 年 3 月 12 日

于 2013-07-10T17:07:00.383 回答
1

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

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

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

于 2013-07-10T17:29:23.537 回答