Artikel sebelumnya memperkenalkan cache MyBatis Level 1 kepada Anda. Teman yang membutuhkan dapat merujuknya.
Dibandingkan dengan cache tingkat pertama, cache tingkat kedua memiliki rentang yang lebih besar dan dapat dibagikan oleh beberapa sqlsessions.
Jika Anda mengirim kueri yang sama, SQL terlebih dahulu akan mencari di cache, dan kemudian meminta database jika tidak dapat ditemukan.
Setiap mapper namespace akan memiliki ruang cache sendiri.
Jika ruang nama dari dua pemetaan adalah sama, data diminta dengan mengeksekusi mapper akan disimpan dalam cache level 2 yang sama.
Demikian pula, jika SQLSession dieksekusi dan komit dieksekusi, cache sekunder akan dihapus.
File konfigurasi (juga diaktifkan secara default tanpa konfigurasi):
Di sqlmapconfig.xml:
<pengaturan nama = "Cacheenabled" value = "true"/>
Di mapper.xml yang sesuai:
<cache/>
Jika Anda tidak memerlukan cache sekunder, Anda dapat menonaktifkan cache sekunder dalam pengaturan
<Pilih usecache = "false"> </ pilih>
Ini dibaca dari database setiap saat
Setelah menjalankan insert, perbarui, hapus, cache akan disegarkan (hapus cache), dan dapat diatur untuk tidak menyegarkan
Umumnya tidak diatur, pengaturan dapat menyebabkan pembacaan kotor.
<insert flushcache = "false"> </sert>
Contoh kecil:
SQLSession session1 = factory.opensession (); SQLSession session2 = factory.opensession (); SQLSession session3 = factory.opensession (); Usermapper mapper1 = session1.getMapper (usermapper.class); Usermapper mapper2 = session2.getmapper (usermapper.class); Usermapper mapper3 = session3.getMapper (usermapper.class); // Permintaan pertama adalah meminta pengguna dengan pengguna ID 1 pengguna1 = mapper1.finduserbyId (1); System.out.println (user1); // tutup data tulis ke sekunder cache session1.close (); // Bersihkan cache sekunder, user1.setusername ("mmm"); mapper3.updateUser (user1); session3.commit (); // kueri kedua akan mencari pengguna pengguna2 = mapper2.finduserbyId (1); System.out.println (user2); session2.close ();Perhatikan bahwa objek yang akan di -cache pada level 2 harus mengimplementasikan antarmuka yang dapat diserahkan, karena data yang di -cache ini dapat dihilangkan dan ditulis ke hard disk atau di tempat lain.
Di atas adalah cache Level 2 Mybatis yang diperkenalkan kepada Anda oleh editor. Saya harap ini akan membantu Anda. Jika Anda memiliki pertanyaan, silakan tinggalkan saya pesan dan editor akan membalas Anda tepat waktu. Terima kasih banyak atas dukungan Anda ke situs web Wulin.com!