Mybatis adalah kerangka kerja lapisan kegigihan yang sangat baik yang mendukung pertanyaan SQL biasa, prosedur tersimpan dan pemetaan lanjutan. Mybatis menghilangkan pengaturan manual hampir semua kode dan parameter JDBC dan enkapsulasi pencarian dari set hasil. Mybatis dapat menggunakan XML sederhana atau anotasi untuk konfigurasi dan pemetaan asli, antarmuka pemetaan dan pojos Java (objek java tua biasa) ke dalam catatan dalam database.
Sekarang setelah mybatis menjadi semakin populer, semua orang tahu kelebihannya, jadi saya tidak akan banyak bicara, hanya berbicara tentang poin -poin utama.
MyBatis menyediakan fungsi SQL yang dinamis. Kita dapat menggunakan <if> <whene> <where> <kalau tidak> <foreach> dan sebagainya, sehingga kita dapat menulis SQL dinamis yang dihasilkan sesuai dengan kondisi. Namun, di tengah, ada kesalahpahaman kecil dari tag <if> yang sering kita gunakan, yang akan jatuh jika kita tidak sengaja. Izinkan saya memberi Anda contoh normal:
<pilih id = "findactiveBlogWithTitlelike" parameTerType = "blog" resultType = "blog"> pilih * dari blog where state = 'Active' <if test = "title! = null"> dan judul seperti #{title} </if> </pilih>Dalam contoh di atas, ketika judul tidak sama dengan null, kondisi dalam tag <if> akan disambung, sehingga pernyataan SQL akan dinamis.
Tetapi ketika kami menilai semua kondisi, apakah Anda menulis dengan cara ini:
<pilih id = "findactiveBlogWithTitlelike" parameTerType = "blog" resultType = "blog"> pilih * dari blog di mana <if test = "userid! = null"> state = 'Active' </if> <if test = "title! = null" dan judul seperti #{title} </if> </pilih>Tidak masalah, kan? Setidaknya itu secara sintaksis bagus, setidaknya dapat menghasilkan SQL secara normal.
Namun, saya tidak tahu apakah Anda telah memperhatikan bahwa ketika semua kondisinya nol, apa yang terjadi?
Pilih * dari blog dimana
Pernahkah Anda melihatnya? Bisakah SQL seperti itu berhasil dieksekusi?
Jawabannya tentu saja tidak.
Jadi apa yang harus saya lakukan? Kemudian ingat bahwa ketika Anda menulis SQL dinamis, pertama -tama pertimbangkan apakah semua kondisi akan terjadi jika semua kondisi tidak benar, dan apakah hanya akan ada satu di mana tetapi tidak ada kondisi. Maka yang harus Anda lakukan adalah menambahkan tag <Where> untuk membungkus semua kondisi.
<pilih id = "findactiveblogwithtitlelike" parameterType = "blog" resultType = "blog"> pilih * dari blog <where> <if test = "userid! = null"> state = 'Active' </if> <if test = "title! = null" dan title seperti #{title} </if> </where> </secher>Dengan cara ini, ketika semua kondisi tidak benar, di mana tidak akan dijabarkan.
Pada saat ini, teman pintar menemukan bahwa jika kondisi pertama tidak benar dan kondisi kedua benar, akankah SQL menjadi seperti ini?
Pilih * dari blog di mana dan judul seperti #{title}Jangan khawatir, saat Anda menggunakan tag <fif> untuk mengelilingi kondisi, itu akan secara otomatis menghapus dan.
Di atas adalah perangkap kecil menggunakan tag SQL dinamis oleh editor untuk memperkenalkan kepada Anda oleh mybatis. 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!