Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用hibernate从外部文件批插入Postgresql表_Java_Hibernate_Batch File_Jdbc_Hql - Fatal编程技术网

Java 使用hibernate从外部文件批插入Postgresql表

Java 使用hibernate从外部文件批插入Postgresql表,java,hibernate,batch-file,jdbc,hql,Java,Hibernate,Batch File,Jdbc,Hql,我有一个包含多条记录的外部文件(大约60k)。现在我想将它们插入到postgresql表中。我将hbm.xml和hibernate.cfg映射到我的数据库。我还为该类编写了getter setter方法 我查阅了有关批插入的hibernate文档,但不知道如何处理文件并将其添加到hibernate代码中。 请参阅以下示例代码段: public void addEmployees( ){ Session session = factory.openSession(); Tr

我有一个包含多条记录的外部文件(大约60k)。现在我想将它们插入到postgresql表中。我将hbm.xml和hibernate.cfg映射到我的数据库。我还为该类编写了getter setter方法

我查阅了有关批插入的hibernate文档,但不知道如何处理文件并将其添加到hibernate代码中。 请参阅以下示例代码段:

public void addEmployees( ){
      Session session = factory.openSession();
      Transaction tx = null;
      Integer employeeID = null;
      try{
         tx = session.beginTransaction();
         for ( int i=0; i<100000; i++ ) {
            String fname = ...
            String lname = ...
            Integer salary = ..;
            Employee employee = new Employee(fname, lname, salary);
            session.save(employee);
            if( i % 50 == 0 ) {
               session.flush();
               session.clear();
            }
         }
     tx.commit();

在上面的代码中,fname、lname和salary将从文件中输入。请让我知道从文件中插入它们的方法。一个明显的方法是解析文件,但是我不确定这是否是一种方法。

我看不出如何避免解析文件问题是我有一个文件,它有大约60k条记录,大约15列。除此之外还有其他方法吗?为什么要使用Hibernate?如果文件中的数据与数据库中的表结构匹配,则可以使用直接加载。如果文件是服务器的本地文件,请使用
COPY
。否则请使用@TomAnderson,即使它不匹配-您仍然可以使用
COPY
将其加载到临时表中并
INSERT。。。选择…
将它们发送到目标表。
abc xyz 450
cde qwe 908
qwe fgh 1009