Popularisasi cepat
1. Apa itu mybatis
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.
Mybatis mengimplementasikan pengikatan antarmuka, membuatnya lebih nyaman untuk digunakan.
Pemetaan hubungan objek yang ditingkatkan, lebih efisien
Mybatis menggunakan ekspresi berbasis OGNL yang kuat untuk menghilangkan elemen lain.
2. Arsitektur fungsional
3. Proses eksekusi
Penjelasan terperinci tentang prinsip:
Aplikasi MyBatis membuat SQLSessionFactory berdasarkan file konfigurasi XML. Konfigurasi berasal dari dua tempat sesuai dengan konfigurasi, satu adalah file konfigurasi dan yang lainnya adalah anotasi kode Java, dan memperoleh SQLSession. SQLSession berisi semua metode yang diperlukan untuk menjalankan SQL. Anda dapat langsung menjalankan pernyataan SQL yang dipetakan melalui instance SQLSession untuk menyelesaikan penambahan data, penghapusan, modifikasi dan kueri, pengiriman transaksi, dll., Dan tutup SQLSession setelah digunakan.
Mari kita lihat poin -poin penting dari artikel ini. Anotasi sederhana mybatis
Kata anotasi kunci:
@Insert: masukkan SQL, sintaksis persis sama dengan XML Sisipkan SQL
@Select: Query SQL, dan sintaksnya persis sama dengan XML Select SQL
@Update: Perbarui SQL, dan sintaks SQL Pembaruan XML persis sama
@Delete: Hapus SQL, dan sintaksnya persis sama dengan XML Delete SQL
@Param: masukkan ginseng
@Results: Koleksi hasil
@Result: Hasil
1. Model domain:
public class UserDO {private Long id;private String userName;private Date gmtCreate;private Date gmtModified;public Long getId() {return id;}public void setId(Long id) {this.id = id;}public String getUserName() {return userName;}public void setUserName(String userName) {this.userName = userName;}public Date getGMtCreate () {return gmtcreate;} public void setgmtCreate (tanggal gmtcreate) {this.gmtcreate = gmtcreate;} tanggal publik getGmtmodified () {return gmtmodified;} public void setgmtmodified (tanggal gmtmodiFied;2. Definisi Antarmuka:
Public Interface userdao {@insert ("masukkan ke dalam t_user (gmt_create, gmt_modified, user_name) nilai (sekarang (), sekarang (), #{username})") public int insert (@param ("username") string username); @Select ("SELECT * DARI T_USER WHERE ID = #{ID}") PUBLIK USERDO SELECTBYUSERID (@Param ("ID") Long ID); @Update ("Perbarui T_USER SET GMT_MODIFIED = NOVER (), USER_NAME = #{USERName} di mana id = #{id}") Public Int @Param ("id") ID panjang); @Delete ("Hapus dari t_user Where id = #{id}") public int udpatebyid (@param ("id") ID panjang); }3. Mybatis XML Config:
<!-anotasi mybatis-> <bean id = "sqlSessionfactory"> <name properti = "DataSource" ref = "mysqlbase" /> <!-di sini Anda hanya perlu mengkonfigurasi sumber data Anda sendiri-> < /bean> <bean id = "userdao"> <nama properti = "mapterface" bernilai mappera. <!-MyBatis Interface-> <properti name = "sqlSessionFactory" ref = "sqlSessionFactory" /> <!-pabrik sqlsession-> < /bean>
Dengan cara ini, kami menyelesaikan demo mybatis menggunakan anotasi. Bukankah rasanya sangat sederhana?
Jika Anda terbiasa dengan MyBatis XML, dalam kebanyakan kasus, kami perlu memetakan nama bidang dari tabel database ke kelas. Anotasi MyBatis juga menyediakan fungsi pemetaan, dan sintaksnya serupa.
@Select ("Pilih * dari TSP_Template di mana id = #{id}")@result (value = {@result (properti = "username", column = "user_name", javatype = string.class, jdbctype = jdbctype.varchar)}) UserdoDo UserDOD (@param @param = jdbctype)});Tentu saja, di atas hanya bahwa SQL tidak bisa sederhana lagi. Pikirkan jika kami memiliki persyaratan ini, kami memperbarui informasi pengguna dan berharap untuk memperbarui nilai atribut yang ditentukan. Dengan kata lain, kami menghasilkan SQL secara dinamis seperti XML. Maka kita tidak bisa hanya dan secara kasar menggunakan anotasi @update. Untungnya, mybatis yang kuat juga menyediakan perakitan SQL yang dinamis.
SQL Dinamis
Hubungan yang sesuai adalah sebagai berikut
@Insert: @insertProvider
@Select: @SelectProvider
@Update: @updateProvider
@Delete: @DeleteProvider
Pengidentifikasi anotasi empat penyedia menggunakan SQL dinamis dan menggunakan format sintaks:
@UpdateProvider (type = userprovider.class, method = "updateSql")
Cara Membangun SQL Dinamis
Public Class UserProvider {/*** udpate* @param userdo userdo* @return*/public string updateSql (final userdo userdo) {return new sql () {{update ("t_user"); set ("gmt_modified = now ()"); if userdo.getusername ()! #{UserName} ");} di mana (" id = #{id}} ");}}. ToString ();}}Poin pengetahuan yang disebutkan dalam artikel ini relatif mendasar. Jika Anda perlu memiliki pemahaman yang mendalam, silakan merujuk ke dokumen situs web resmi atau membaca kode sumber.
Meringkaskan:
1. Bagaimana cara memilih XML dan anotasi? Ini bervariasi dari orang ke orang. Setiap orang memiliki kebiasaan pengkodean mereka sendiri. XML dan anotasi memiliki kelebihan dan kekurangannya sendiri. Kerugian XML: Ketika atribut model diubah, itu perlu diubah dari Do menjadi DAO ke XML. Akan sangat menyakitkan untuk memikirkannya ~ XML juga memiliki keuntungan. SQL Fragment Reuse lebih nyaman dan sintaksnya mudah didekati. Tidak seperti anotasi, Anda harus membangun pernyataan dinamis dan membuat kelas. Selain itu, ketika segmen SQL direferensikan beberapa tempat, kode tersebut tampak berlebihan. Pada saat ini, XML harus digunakan untuk mengekstrak dan menggunakannya bersama. Saya mengeluh tentang anotasi mybatis, bukankah anotasi itu tidak berguna? Tidak, mybatis cocok untuk skenario di mana atribut model sering diubah, karena dapat dikombinasikan dengan refleksi dan SQL yang dibangun secara dinamis (murni omong kosong, ide -ide pribadi, harus direalisasikan, dan itu akan dilakukan di hari lain). Dapat dikatakan bahwa keunggulan anotasi mybatis menebus kekurangan XML dengan baik. Keduanya saling melengkapi ~
Di atas adalah awal yang cepat untuk anotasi pengembangan Mybatis yang diperkenalkan oleh editor. Saya harap ini akan membantu semua orang. Jika Anda memiliki pertanyaan, silakan tinggalkan saya pesan dan editor akan membalas semua orang tepat waktu. Terima kasih banyak atas dukungan Anda ke situs web Wulin.com!