Pengantar Mybatis
Mybatis adalah proyek open source dari Apache. Pada 2010, proyek ini dipindahkan dari Apache Software Foundation ke Google Code dan berganti nama menjadi Mybatis. Ini mendukung kerangka kerja lapisan kegigihan yang sangat baik untuk pertanyaan SQL biasa, prosedur tersimpan dan pemetaan lanjutan. Mybatis menghilangkan pengaturan manual dari hampir semua kode dan parameter JDBC dan mencari set hasil. Mybatis menggunakan XML sederhana atau anotasi untuk konfigurasi dan pemetaan asli untuk memetakan antarmuka dan pojos Java (objek java tua biasa) ke dalam catatan dalam database.
Pengantar Mybatis Interceptor
MyBatis menyediakan fungsi plugin. Meskipun disebut plugin, itu sebenarnya adalah fungsi pencegat. Mybatis memungkinkan Anda untuk mencegat panggilan pada titik tertentu selama pelaksanaan pernyataan yang dipetakan. MyBatis memberi kami antarmuka interceptor, dengan mengimplementasikan antarmuka ini, kami dapat mendefinisikan interseptor kami sendiri.
Mybatis memanggil empat jenis metode secara default:
1. Executor (Pembaruan, Kueri, Flushstatements, Commit, Rollback, GetTransaction, Close, Isclose)
2. ParameterHandler (GetParameterObject, SetParameters)
3.ResultsetHandler (handleresultsets, handleoutputparameters)
4.StatementHandler (Persiapkan, Parameterisasi, Batch, Update, Query)
4 di atas adalah semua metode konfigurasi. Metode -metode ini akan dijalankan dalam operasi mybatis (Tambah, Hapus, Modifikasi, dan Permintaan). Urutan eksekusi adalah pelaksana, ParameterHandler, HasilSethandler, dan Pernyataan Handler.
Definisi antarmuka adalah:
Di antara ketiga metode ini, plugin digunakan untuk konstruksi prosesor, intersep digunakan untuk menangani kelas proxy, dan pengaturan properti interseptor istilah setProperties.
Kelas plugin mengimplementasikan antarmuka InvocationHandler dan mengembalikan kelas proxy dinamis JDK sendiri. Untuk metode bungkus plugin:
Tentukan apakah objek target saat ini memiliki antarmuka yang perlu dicegat. Jika tidak, ia mengembalikan objek target itu sendiri, dan jika ada, ia mengembalikan objek proxy.
InvocationHandler dari objek proxy adalah plugin. Ketika objek target mengeksekusi metode antarmuka, jika dieksekusi melalui objek proxy, metode Invoke dari AvoCationHandler akan dipanggil, yang merupakan metode Invoke plugin:
Jika metode yang saat ini dieksekusi adalah metode yang ditentukan yang perlu dicegat, objek target, metode yang akan dijalankan, dan parameter metode dienkapsulasi ke dalam objek doa, dan doa yang dienkapsulasi dilewatkan sebagai parameter ke metode intersep dari interceptor saat ini. Jika tidak perlu mencegat, metode saat ini dipanggil secara langsung.
Untuk metode getsignatureMap
GetignatureMap pertama -tama akan mendapatkan anotasi intersep dari intersep, melintasi untuk mendapatkan atribut Type, dan kemudian mendapatkan metode dengan atribut Metode dan ARGS ARTRIBUT berdasarkan jenis ini, dan akhirnya mengembalikan peta dengan Type Key dan Nilai Set <hethod>. Contoh: Menyaring metode pembaruan Executor.Class akan menghasilkan kunci sebagai executro dan nilai sebagai contoh metode, dengan parameter yang sesuai dengan metode pemetaan dan metode metode.
Konfigurasi Interceptor: