我正在尝试将数据(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 显示不同的值(如预期的那样)。我哪里错了?
如何u.setMnet(wdata1[4]);
在退出 while 循环之前返回我得到的值?为什么我在 postgresql 中得到相同的值?
谢谢!