Bacaan yang Disarankan:
Tutorial Pembelajaran Pengantar MyBatis (I) - Mybatis Start Quick
Apa itu Dynamic SQL? Apa itu fungsi Dynamic SQL?
Dengan cara tradisional menggunakan JDBC, saya percaya bahwa ketika Anda menggabungkan pernyataan SQL yang kompleks, Anda perlu menyambungkannya. Jika Anda tidak hati -hati, bahkan jika Anda kekurangan spasi, itu akan menyebabkan kesalahan. Fungsi SQL dinamis Mybatis adalah untuk menyelesaikan masalah ini. Ini dapat digabungkan menjadi pernyataan SQL yang sangat fleksibel melalui IF, pilih, kapan, jika tidak, trim, di mana, set, tag foreach, sehingga meningkatkan efisiensi pengembang.
Mari kita alami pesona SQL dinamis Mybatis:
1. Jika: Anda bisa menilai, dan saya bisa menilai juga!
Sebagai seorang programmer, siapa yang tidak mengerti jika! Anda juga dapat menggunakan jika di mybatis:
<pilih id = "findUserById" resultType = "user"> pilih * dari pengguna di mana <if test = "id! = null"> id =#{id} </if> dan deleteFlag = 0; </pilih>Contoh di atas: Jika ID yang masuk tidak kosong, maka SQL akan menyambungkan ID = #{ID}. Saya percaya semua orang dapat memahami ini dengan membacanya, dan saya tidak akan banyak bicara.
Orang -orang yang hati -hati akan menemukan masalah: "Ini salah dengan Anda! Jika ID yang Anda lewati adalah NULL, maka pernyataan SQL terakhir Anda akan menjadi Select * dari pengguna di mana dan deleteflag = 0, ada masalah dengan pernyataan ini!"
Ya, saat ini, tag di mana mybatis harus dibuat dengan megah:
2. Di mana, dengan saya, kondisi penyambungan pernyataan SQL adalah semua tentang awan!
Mari kita ubah contoh di atas melalui tempat:
<pilih id = "findUserById" resultType = "user"> pilih * dari pengguna di mana <where> <if test = "id! = null"> id =#{id} </if> dan deleteFlag = 0; </where> </ pilih>Beberapa orang akan bertanya: "Apa yang kamu lakukan? Dibandingkan dengan hal di atas, hanya ada tambahan di mana tag! Apakah ini masih muncul pilih * dari pengguna di mana dan deleteflag = 0?"
Memang, di permukaan, hanya ada tambahan di mana tag, tetapi pada dasarnya, Mybatis menghadapinya. Ketika bertemu dan atau atau, ia tahu cara menghadapinya. Bahkan, kami dapat menyesuaikan aturan pemrosesan ini melalui tag trim.
3. Trim: Wilayah saya, saya membuat keputusan!
Di atas di mana tag dapat diekspresikan sebagai berikut menggunakan trim:
<trim awalan = "di mana" prefixoverrides = "dan | atau"> ... </ trim>
Artinya: kapan di mana diikuti oleh atau atau atau, dan atau atau dihapus. Selain di mana, sebenarnya ada implementasi klasik lain, yang ditetapkan.
4. Set: Percayalah, tidak ada kesalahan!
<update id = "updateAser" parameTerType = "com.dy.entity.user"> Perbarui set pengguna set <if test = "name! = null"> name = #{name}, </if> <if test = "password! = null"> {{ever/if> </if test = "if test =" ife! null "> id = #{id} </if> dan deleteFlag = 0; </where> </update>Pertanyaannya muncul lagi: "Jika saya hanya memiliki nama tetapi tidak null, maka SQL ini menjadi pembaruan set nama = #{name}, di mana .........? Koma setelah nama Anda akan menyebabkan kesalahan!"
Ya, saat ini, Anda dapat menggunakan tag set yang disediakan oleh mybatis untuk kami. Berikut ini dimodifikasi melalui tag set:
<update id = "updateAser" parameTerType = "com.dy.entity.user"> Perbarui pengguna set <set> <if test = "name! = null"> name = #{name}, </if> <if test = "password! = null"> password = #{password}, </if> <if test = "evene! test = "id! = null"> id = #{id} </if> dan deleteFlag = 0; </where> </update>Ini dapat dinyatakan sebagai:
<trim prefix = "set" suffixoverrides = ","> ... </ trim>
Di mana menggunakan prefixoverrides (awalan), set menggunakan sufiksoverrides (sufiks), Anda dapat memahaminya!
5. Foreach: Anda punya untuk, saya punya, jangan berpikir itu hanya Anda!
Ada untuk di Java, dan dapat dilingkarkan untuk. Demikian pula, ada foreach di mybatis, dan dapat digunakan untuk menerapkan loop. Tentu saja, benda -benda yang diulang sebagian besar adalah wadah dan array Java.
<Pilih id = "selectPostin" resultType = "domain.blog.post"> SELECT *Dari post pos di mana di <freeach item = "item" index = "index" collection = "list" open = "(" sparator = "," close = ")">#{item} </foreach> </pilih>Lewati contoh daftar atau array sebagai objek parameter ke mybatis. Saat melakukannya, mybatis akan secara otomatis membungkusnya di peta dan menggunakan nama sebagai kunci. Instance daftar akan mengambil "daftar" sebagai kunci, dan kunci instance array akan menjadi "array". Demikian pula, ketika objek loop adalah peta, indeks sebenarnya adalah kunci peta.
6. Pilih: Saya memilih Anda, Anda memilih saya!
Ada Switch in Java, dan Mybatis memiliki pilihan.
<pilih id = "findactiveblog seperti" resultType = "blog"> pilih * dari blog where state = 'Active' <OMFOLE> <when test = "title! = null"> dan judul seperti #{title} </when> <when test = "author! = null dan author.name! = null" dan author_name like #{name.name} </} </orese} </oraese <dan sebaliknya </nake> whoe {dan} </} </nake> whoe </oraeseed> whoe {/} </} </«} </nole>Dalam contoh di atas: ketika judul maupun penulis tidak ada nol, maka pilih salah satu dari dua (yang pertama lebih disukai). Jika keduanya nol, maka pilih yang lain. Jika hanya ada satu dari Tilte dan penulis yang bukan nol, maka pilih yang bukan nol.
Di atas adalah tutorial pengantar untuk mybatis (iv) dari mybatis dinamis SQL yang diperkenalkan kepada Anda. 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!