Perbedaan antara mybatis dan ibatis:
1. MyBatis mengimplementasikan pengikatan antarmuka, membuatnya lebih nyaman untuk menggunakan <br /> di iBatis2.x, kita perlu menentukan file pemetaan XML mana yang sesuai dengan di kelas implementasi DAO.
Mybatis mengimplementasikan pengikatan antarmuka DAO dan file pemetaan XML, dan secara otomatis menghasilkan implementasi spesifik antarmuka bagi kami, membuatnya lebih mudah digunakan dan lebih nyaman.
Ini dapat dikatakan sebagai peningkatan mybatis yang paling penting.
Melihat:
Meskipun MyBatis mendukung penggunaan konfigurasi anotasi secara langsung di antarmuka untuk menyederhanakan konfigurasi,
Namun, sangat disarankan untuk tetap menggunakan metode konfigurasi XML. Bagaimanapun, metode konfigurasi anotasi terbatas dan kodenya terlalu invasif. Hanya dengan menggunakan metode konfigurasi XML yang dapat dicerminkan oleh mybatis
2. Peningkatan pemetaan hubungan objek lebih efisien <br /> Saya percaya bahwa banyak teman yang menggunakan iBatis2.x tidak menyadari pemetaan hubungan antar objek melalui file pemetaan XML Ibatis. Faktanya, tidak perlu melakukan itu, karena IBATIS2.X menggunakan "kueri leher" untuk mewujudkan hubungan antara objek melalui perakitan langsung pernyataan kueri, dan efeknya sama dengan enkapsulasi dalam DAO atau layanan.
Namun, metode ini memiliki "masalah kueri n+1".
Singkatnya, masalah kueri N+1 dapat disebabkan seperti ini:
? Anda menjalankan pernyataan SQL terpisah untuk mendapatkan daftar hasil (yaitu +1).
? Untuk setiap catatan yang dikembalikan, Anda menjalankan pernyataan kueri untuk memuat detail untuk setiap pemuatan (yaitu, n).
Masalah ini dapat menyebabkan ratusan pernyataan SQL dieksekusi. Ini biasanya tidak diharapkan.
Di mybatis, selain kompatibel dengan metode "kueri leher" di ibatis2.x, itu juga menyediakan metode "hasil leher" langsung, yang setara dengan secara otomatis merangkum objek DTO kueri ke dalam objek yang diperlukan melalui kalimat SQL.
Untuk metode implementasi tertentu, silakan merujuk ke Manual Pengguna Resmi MyBatis sendiri, dan jangan menggambarkannya di sini.
Namun, pada kenyataannya, manfaat yang dibawa oleh peningkatan ini sangat terbatas. Karena metode ini tidak berfungsi saat menggunakan paging, atau set hasil objek bersarang tidak diperbolehkan menjadi paging. Ini telah jelas dibatasi dalam kerangka Mybatis (34 baris di org.apache.ibatis.executor.Resultset.nestedResultsetHandler), dan ada banyak kasus di mana paging diperlukan dalam proyek aktual ...
Jika Anda memikirkannya dengan hati-hati, pemetaan satu-ke-banyak tidak dapat menjadi paging melalui file konfigurasi, karena jumlah catatan yang ditanya saat ini tidak sama dengan ukuran objek pengembalian yang sebenarnya, tetapi saya tidak mengerti mengapa pemetaan satu-ke-satu tidak diizinkan. Mungkin karena satu-ke-satu adalah kasus khusus satu-ke-banyak, dan ketika merancang kerangka kerja, tidak dianggap atau sulit untuk menangani kasus khusus ini.
3. Mybatis menggunakan ekspresi berbasis OGNL yang kuat untuk menghilangkan elemen lain <br /> orang yang akrab dengan Struts2 tidak boleh tidak terbiasa dengan ekspresi OGNL.
MyBatis menggunakan ekspresi OGNL untuk menyederhanakan kompleksitas file konfigurasi dan lebih mudah digunakan.
Mungkin itu lebih peduli
Mybatis mengimplementasikan pengikatan antarmuka, membuatnya lebih nyaman untuk digunakan.
Ibatis/Mybatis 3 menyediakan fitur baru: Anotasi.