0

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

谢谢!

4

0 回答 0