将数据加载到Postgresql问题(循环问题)

时间:2013-10-15 05:00:51

标签: java hibernate csv jdbc orm

我正在尝试将数据(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中获得相同的值?

谢谢!

0 个答案:

没有答案