我正在尝试将数据(CSV)加载到Postgresql中。
问题:当我从CSV加载数据时,解析发生得很好(我可以从Sysout看到它),但是当我尝试加载到数据库中时。我收取相同的值10000次。 (与CSV中的值不同)。我无法诊断问题。请帮忙!
以下代码从CSV读取输入:
public class GeneratePeople {
public Weather createUser() throws IOException {
String csvFile = "D:\\chick.csv";
BufferedReader br = null;
String line = "";
String cvsSplitBy = ",";
Weather u = new Weather();
br = new BufferedReader(new FileReader(csvFile));
while ((line = br.readLine()) != null) {
// use comma as separator
String[] wdata1 = line.split(cvsSplitBy);
//System.out.println("Data inserted Before:" +wdata1[4]);
u.setMnet(wdata1[4]);
//System.out.println("Data inserted After:" +wdata1[4]);
}
return u;
}
}
这是我的申请:
这将读取数据并推送到PostGresql
public class Populate extends People {
public static void main(String[] args) throws IOException {
System.out.println("Loading data to pplhib");
Populate p = new Populate();
p.bulkGenerate(10000);
System.out.println("!!!!Process Completed!!!!");
}
public void bulkGenerate(int count) throws IOException {
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
try {
GeneratePeople gen = new GeneratePeople();
Transaction tx = session.beginTransaction();
for (int n = 0; n < count; n++) {
Weather p = gen.createUser();
session.save(p);
if (n % 100 == 0) {
session.flush();
session.clear();
}
}
tx.commit();
} finally {
// session.close();
}
}
}
我得到相同的值10,000次而不是不同的值,但我在生成人员中使用的sysout显示不同的值(如预期的那样)。我哪里错了?
如何在退出while循环之前返回u.setMnet(wdata1[4]);
的值?为什么我在postgresql中获得相同的值?
谢谢!