Metode penulisan file pemetaan Mybatis beragam, dan metode penulisan dan penggunaan yang berbeda memiliki perbedaan besar dalam waktu pengembangan dan waktu pemeliharaan yang dikonsumsi selama proses pengembangan yang sebenarnya. Hari ini saya akan merekam metode penulisan file pemetaan yang relatif sederhana untuk semua orang untuk memodifikasi dan merekomendasikan, dan mencoba menemukan metode penulisan terbaik ~~:
Ambil objek pengguna dan usermap.xml sebagai contoh untuk dijelaskan, kodenya adalah sebagai berikut:
Pengguna adalah kelas entitas pengguna (hanya untuk penjelasan, Anda hanya dapat fokus pada variabel jenis referensi, dan metode GET/Set dihilangkan):
Impor com.google.common.collect.lists; import com.guKeer.common.persistence.dataentity; import com.guKeer.modules.personal.entity. java.util.date;/*** Entitas pengguna ** auther: cc*Tanggal: 2016/9/2*/Pengguna kelas publik memperluas DataEntity <User> {private static final long serialversionuid = 1L; ID string pribadi; perusahaan kantor swasta; // Kantor Kantor Privat; // Private String LoginName; // Nama Login Private String Password; // Password Private String No; // Nomor Pekerjaan Nama String Pribadi; // Sebutkan email string pribadi; // email telepon string pribadi; // Telepon Private String Mobile; // Mobile Private String UserType; // Pengguna Tipe Private String Loginip; // login terakhir ipprivate tanggal logindate; // Tanggal Login Terakhir Private String LoginFlag; // apakah akan mengizinkan login ke foto string pribadi; // Avatar Private String Qrcode; // QR Code Private String OldLoginName; // Nama Login Asli Private String NewPassword; // Kata Sandi Baru Private String Oldloginip; // Masuk Terakhir Ipprivate Date oldlogindate; // tanggal login terakhir dept privat; // Departemen Staf Pribadi; // Posisikan peran peran pribadi; // Permintaan Kondisi Pengguna Berdasarkan Peran Private List <Emberi> rolelist = lists.newarraylist (); // Daftar Peran Pemilik Sekolah Sekolah Swasta; // Atributor Private String Keterangan; // Catatan Pengguna Pribadi CreateBy; // Creator Private Date Created; // Tanggal Pembuatan Pembaruan Pengguna Pribadi; // pembaruan tanggal pribadi diperbarui; // Tanggal yang Diperbarui Private String Delflag; // hapus tanda (0: normal; 1: hapus; 2: ulasan)}Untuk variabel anggota jenis referensi, untuk secara langsung menetapkan nilai selama proses kueri, hasil kueri dapat ditetapkan ke hasil yang dikembalikan yang diatur dalam file pemetaan:
<? Xml Version = "1.0" encoding = "utf-8"?> <! Doctype mapper public "-// mybatis.org//dtd mapper 3.0 // en" "http://mybatis.org/dtd/mybatis-3-mapper namespace = "com.gk.modules.sys.dao.userdao"> <!-Poin kunci adalah bagian ini, langsung menetapkan bidang ID yang disimpan oleh database ke variabel anggota objek, seperti a.company_id sebagai "perusahaan. <!- Tentu saja, variabel jenis referensi di perusahaan juga dapat ditugaskan menggunakan metode ini. Beberapa tabel dapat diperiksa melalui gabung kiri. Ini adalah operasi dalam kueri basis data. Ini tidak dibahas di sini-> <sql id = "usercolumns"> a.id, a.company_id sebagai "company.id", A.office_id as "Office.id", a.login_name, A.Password, A.No, A.Name, A.email, A.Phone, A.Mobile, a.user_type, a.login_ip, a.login_date, a.remarks, a.login_flag, a.photo, a.qrcode, A.create_by sebagai "create_create, a.photo, a.qrcode, A.create_by sebagai" createby_create, a.photo, a.qrcode, a.create. "UpdateBy.id", a.update_date, a.del_flag, c.name sebagai "company.name", c.parent_id sebagai "company.parent.id", c.parent_ids sebagai "company.parentids", ca.id sebagai "company.area.id", ca.name as "company.areAeMame", ca.parents "oSEDE.", company. Sebagai "company.area.parentids", o.name sebagai "Office.name", o.parent_id sebagai "Office.parent.id", oa.id sebagai "Office.area.id", oa.name sebagai "Office.area.name", oa.parent_id sebagai "Office.area.area.arentpar.id", oA. "company.primaryperson.id", cu.name sebagai "company.primaryperson.name", cu2.id sebagai "company.deputyperson.id", cu2.name sebagai "company.deputyperson.name", ou.id sebagai "Office.primaryperson.id", ou.name as "Office.primaryperson. "Office.Deputyperson.id", ou2.name sebagai "Office.Deputyperson.name", sc.xxlx sebagai "School.xxlx", sc.xxmc sebagai "School.xxmc" </sql> <sql id = "userjoins"> kiri bergabung dengan sys_office c on c.id = a.id = a.id = "userjoins"> kiri bergabung dengan sys_office c on c.id = a. JOIN sys_office o ON o.id = a.office_idLEFT JOIN sys_area oa ON oa.id = o.area_idLEFT JOIN sys_user cu ON cu.id = c.primary_personLEFT JOIN sys_user cu2 ON cu2.id = c.deputy_personLEFT JOIN sys_user ou ON ou.id = o.primary_personLEFT JOIN sys_user Ou2 pada ou2.id = o.deputy_personleft bergabung dengan xj_school sc pada sc.id = a.school </sql> <!-Pernyataan kueri, sesuai dengan hasil kueri ID, tipe pengembalian dapat ditulis secara langsung oleh pengguna, sementara konfigurasi yang berbeda HasilMap menghilangkan waktu untuk menulis xml-> <Select ID = "getUserby yang berbeda. refid = "userColumns"/> dari sys_user a <include refid = "userjoins"/> di mana a.id = #{id} </select> <!-pernyataan kueri, kueri berdasarkan objek pengguna, parameter di sini adalah variabel pengguna-> <pilih id = "getbyloginname" hasil "" paramer "paramer" paramer = "getByLoginName" hasil "paramer" paramer "paramer" "getbyloginname" userType = "paramer" paramer "paramer" "getByLoginName" hasil "" Paramer "paramer" "getByLoginName" sys_user a<include refid="userJoins"/>WHERE a.login_name = #{loginName} AND a.del_flag = #{DEL_FLAG_NORMAL}</select><!-- Insert statement, the parameters must be User object--><insert id="insert">INSERT INTO sys_user(id, company_id, office_id, login_name, password, no, name, email, Telepon, seluler, user_type, create_by, create_date, update_by, update_date, komentar, login_flag, foto, qrcode, del_flag, dept_id, staff_id, sekolah) nilai ( #{id}, #{company.id}, #{Office.id}, #{{loinname {{{company.id}, #{Office.id}, #{{loinname {{{company.id}, #{Office.id}, #{{loinname {{{company.id}, #{Office.id}, #{loinname #{email}, #{phone}, #{seluler}, #{userType}, #{createBy.id}, #{createTate}, #{updateDate}, #{komentar}, #{loginflag}, #{photo}, #{qrcode},#{delflag},#{dept.id},#{staff.id},#{School.id}) </inert> <!-Perbarui pernyataan, parameter juga objek pengguna-> <update id = "update"> update sys_user set company_id =#{{{{{{{{{{{{{{{{{{{{{{{{{{{Office '{ #{LoginName}, kata sandi = #{kata sandi}, no = #{no}, name = #{name}, email = #{email}, phone = #{phone}, seluler = #{seluler}, user_type = #{userType}, update_by = #{updateBy.id}, update}, update_date = #{USERTYPE = {update_by = #{update.id}, update}, update_date = {USerType = #{update_by = #{update.id}, update {update}, update {update {update {update.id {update {update {update.id {update.id {update.id {update {update {update ”yang update” yang diperbarui ”” #{Keterangan}, login_flag = #{loginflag}, photo = #{photo}, qrcode = #{qrcode}, sekolah = #{School.id} di mana id = #{id </update> <!-penghapusan fisik pengguna-> <update id = "delete"> delete dari Sy = Sy = Sy = Sy = Sy = Sy = Sy = SYRECE dari SYRECE dari USERNER {UPLEY ID = "DELETE"> Penghapusan pengguna-> <update id = "deleteByLogic"> Perbarui sys_user set del_flag = #{del_flag_delete} where id = #{id} </dendate> </mapper>