Salah satu fitur kuat mybatis biasanya kemampuan SQL yang dinamis. Jika Anda memiliki pengalaman menggunakan JDBC atau kerangka kerja serupa lainnya, Anda mengerti betapa menyakitkannya untuk menggabungkan string SQL bersama -sama secara kondisional, pastikan Anda tidak bisa melupakan ruang atau menghilangkan koma di akhir daftar. SQL dinamis dapat menangani rasa sakit ini secara menyeluruh.
SQL Dinamis
SQL dinamis Mybatis memecahkan rasa sakit splicing string SQL.
1.Jika
<pilih id = "findactiveBlogWithTitlelike" parameTerType = "blog" resultType = "blog"> pilih * dari blogwhere state = 'Active' <if test = "title! = null"> dan judul seperti #{title} </if> </pilih> Kalimat ini akan memberikan fungsi pencarian teks opsional. Jika tidak ada judul yang dilewati, maka semua blog yang diaktifkan akan dikembalikan.
Jika judul dilewati, maka judul serupa akan ditemukan.
2. Pilih, kapan, sebaliknya
<pilih id = "findactiveblog seperti" parameTerType = "blog" resultType = "blog"> pilih * dari blogwhere <pote> <when test = "title! = null"> judul seperti #{title} </when> <when test = "author! = null dan author.name! = null" dan judul seperti #{awor author.name} </} </} </«} </«} </} </} </} </«} </} </} </nake <dan nting> nake <dan« {/} </} </} </} </} </} </nole '> CATATAN: Jika tidak ada kondisi di atas yang cocok, itu akan menjadi Select * dari blog dimana
Jika hanya ada pertandingan kedua, itu akan menjadi Select * dari Blog Where and Title Like Somelike
Jelas, ini akan gagal dalam kueri. Untuk mengatasi masalah ini, MyBatis memberikan solusi.
<Pilih id = "findActiveblog seperti" parameTerType = "blog" resultType = "blog"> pilih * dari blog di mana <trim prefix = "di mana" prefixoverrides = "dan | atau"> <tible> <when test = "title! = null"> judul seperti #{title} </wap #{author.name} </when> <serama> dan fitur = 1 </setines> </toFer> </ trim> </ pilih>Properti overrides ditimpa dengan pemisah teks pipa, dan ruang kosong penting di sini. Hasilnya adalah menghapus konten yang ditentukan dalam overrides di Innertext.
3.set
<update id = "UpdateAuthorifNecarsy" parameTerType = "author"> UPDATE OUTHOR <set> <if test = "UserName! = null"> username =#{username}, </if> <if test = "password! = null">#{kata sandi}, </if> <if test = "ife! ID =#{id} </d untuk update>Masalah yang sama seperti di atas, setelah optimasi:
<update id = "updateAuthorifNecarsy" parameTerType = "author"> Update author <trim prefix = "where" prefixoverrides = ","> <set> <if test = "username! = null"> username =#{username}, </if> <if test = "kata sandi! =#" {ow ower = {if> </if> </if> null "> email =#{email} </if> </atur> where id =#{id} </ trim> </update>Di atas adalah masalah splicing dinamis mybatis dari string SQL 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!