Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Melaksanakan Batch Upserts (Sisipkan/Kemas kini) dengan Cekap dalam MyBatis dengan Oracle?
Batch Upsert (Sisipkan/Kemas kini) dalam MyBatis untuk Oracle
Konteks:
Dalam MyBatis, anda perlu memasukkan atau mengemas kini senarai objek ke dalam pangkalan data Oracle semasa mengendalikan kemungkinan pendua. Penyelesaian semasa melibatkan gelung manual dan operasi sisipan/kemas kini yang berasingan, yang tidak cekap.
Penyelesaian:
Untuk mengoptimumkan proses, pertimbangkan untuk menggunakan keupayaan batching MyBatis dan Oracle's fungsi "gabung". Walau bagaimanapun, gabungan batching tidak disokong secara langsung dalam MyBatis.
Pendekatan Disyorkan:
Untuk mencapai peningkatan kelompok, gunakan langkah berikut:
Contoh Kod:
public void updateRecords(final List<GisObject> objectsToUpdate) { final SqlSession sqlSession = MyBatisUtils.getSqlSessionFactory().openSession(ExecutorType.BATCH); try { final GisObjectMapper mapper = sqlSession.getMapper(GisObjectMapper.class); for (final GisObject gisObject : objectsToUpdate) { mapper.updateRecord(gisObject); } sqlSession.commit(); } finally { sqlSession.close(); } }
Nota:
Pastikan bahawa kaedah kemas kini/masukkan dalam pemeta dikonfigurasikan dengan sewajarnya untuk operasi rekod tunggal. Menggunakan foreach atau menjana pernyataan SQL gergasi untuk pemprosesan kelompok tidak disyorkan.
Atas ialah kandungan terperinci Bagaimana untuk Melaksanakan Batch Upserts (Sisipkan/Kemas kini) dengan Cekap dalam MyBatis dengan Oracle?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!