Klien mengirimkan pernyataan kueri SQL yang sama ke server database. Jika Anda mengakses database setiap saat, itu akan menyebabkan degradasi kinerja.
Jadi bagaimana cara meningkatkan?
mybatis memberi kita strategi untuk cache level 1
Antara pembukaan dan penutupan SQLSession, objek SQLSession (sebenarnya pelaksana) akan mempertahankan objek yang di -cache. Saat menanyakan data, pertama -tama cari apakah data ada dari cache, dan jika ada, itu akan diambil secara langsung. Jika tidak ada, kirim kueri SQL ke database, lalu simpan data kueri ke dalam cache dan kembalikan ke program.
Ini akan memiliki masalah:
Jika suatu program mengubah data database untuk diperiksa selama kueri pertama dan kedua, itu akan menyebabkan data yang dibaca salah, yaitu,
Dirty Reading sebenarnya Mybatis akan menghapus cache setelah menjalankan metode komit () di SQLSession. Kali kedua saya pergi ke kueri, saya masih akan meminta dari database.
Anda juga dapat secara manual menghubungi metode clearcache () SQLSESSION untuk menghapus cache
Contoh kecil:
@Test public void testcachelever1 () melempar Exception {SQLSession session = factory.opensession (); Usermapper mapper = session.getMapper (usermapper.class); // Permintaan pertama adalah meminta pengguna dengan pengguna ID 1 pengguna = mapper.finduserbyId (1); System.out.println (pengguna); // Ubah data, cache akan dihapus user.setusername ("yyyy"); mapper.updateuser (pengguna); session.commit (); // kueri kedua akan mencari pengguna pengguna2 = mapper.finduserbyId (1); System.out.println (user2); session.close (); }pertanyaan:
Jika SQLSession ditutup, cache akan dihapus. Bagaimana Anda menggunakan cache untuk meningkatkan efisiensi?
Oke, artikel berikutnya memperkenalkan cache MyBatis Level 2 kepada Anda.
Di atas adalah cache tingkat pertama Mybatis yang diperkenalkan oleh editor. Saya harap ini akan membantu semua orang. Jika Anda memiliki pertanyaan, silakan tinggalkan saya pesan dan editor akan membalas semua orang tepat waktu. Terima kasih banyak atas dukungan Anda ke situs web Wulin.com!