Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Sisipan batch menggunakan SQL Asli di Hibernate

Hibernate memiliki fungsionalitas Batch. Tetapi dalam kasus di atas saya menggunakan SQL Asli, menurut pengamatan saya, batch hibernasi tidak terlalu efektif dalam kasus SQL Asli. Ya, tentu saja itu menghindari kesalahan memori tetapi tidak meningkatkan banyak kinerja. Oleh karena itu Saya mundur untuk mengimplementasikan JDBC Batch di Hibernate. Hibernate menyediakan metode doWork() untuk mendapatkan Koneksi dari Sesi Hibernasi.

Session session = sessionFactory.openSession();
Transaction tx = session.beginTransaction();
//get Connction from Session
session.doWork(new Work() {
       @Override
       public void execute(Connection conn) throws SQLException {
          PreparedStatement pstmt = null;
          try{
           String sqlInsert = "insert into sampletbl (name) values (?) ";
           pstmt = conn.prepareStatement(sqlInsert );
           int i=0;
           for(String name : list){
               pstmt .setString(1, name);
               pstmt .addBatch();

               //20 : JDBC batch size
             if ( i % 20 == 0 ) { 
                pstmt .executeBatch();
              }
              i++;
           }
           pstmt .executeBatch();
         }
         finally{
           pstmt .close();
         }                                
     }
});
tx.commit();
session.close();


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tutorial yang bagus tentang cara memperbarui database Mysql Anda dengan formulir PHP?

  2. Bisakah saya menjalankan file sql di instance Google Cloud Sql saya menggunakan perintah gcloud sql

  3. Kinerja MySQL:Indeks MySQL/MariaDB

  4. SQL Server setara dengan fungsi substring_index di MySQL

  5. MySQL Pilih baris di mana kolom stempel waktu antara sekarang dan 10 menit yang lalu