现在我有一个包含几列行的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吗?
答案 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日