Java 使用Hibernate从文件读取数据并插入到表中

Java 使用Hibernate从文件读取数据并插入到表中,java,hibernate,Java,Hibernate,我试图通过读取txt文件中的数据将数据插入book表,问题是在commit()语句中只生成了一个insert查询 import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.io.IOException; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernat

我试图通过读取txt文件中的数据将数据插入book表,问题是在
commit()
语句中只生成了一个insert查询

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;

public class BookClientFile {

public static void main(String[] args) {

    SessionFactory sf = new Configuration().configure().buildSessionFactory();
    Session s1 = sf.openSession();

    BufferedReader br = null;
    Transaction trans = null;

    try {
           br = new BufferedReader(new FileReader(new File("Books.txt")));
           String line = null;
           String [] row = null;
           Book bk = null;

           trans = s1.beginTransaction();
           while((line = br.readLine()) != null) {

               bk = new Book();
               row = line.split(",");

               bk.setBookId(Integer.parseInt(row[0].trim()));
               bk.setTitle(row[1].trim());
               bk.setAuthor(row[2].trim());

               s1.save(bk);
               trans.commit();
           }

    } catch(IOException e) {
        e.printStackTrace();
    }
    finally {

        s1.flush();
        s1.close();

    try {

        if(br != null) {

            br.close();
            br = null;
        }

    } catch(IOException e) {
        e.printStackTrace();
    }
    }
}
}

交换“到”行以开始每本书的交易

       trans = s1.beginTransaction();
       while((line = br.readLine()) != null) {

或者移动
trans.commit()离开时

获取
trans.commit()在while循环之外。

您不需要在while循环之外提交吗?什么都没有发生,相同的输出
Hibernate:在Book(Book\u title,Book\u author,Book\u id)中插入值(?,?)
相同的输出,程序在生成一个sql查询后停止。