1. Antarmuka getMapper ()
Analisis: getMapper () antarmuka Idept.class mendefinisikan antarmuka,
Memasang metode yang tidak diimplementasikan. Dalam istilah khusus, metode apa pun yang meminjam bangunan harus konsisten dengan atribut ID dalam konfigurasi kecil.
Melalui Proxy: Hasilkan nama kelas implementasi antarmuka, pertahankan nama $$ dept_abc, selectdeptbyno () di mybatis yang mendasari
Itu setara dengan tipe yang kuat
Misalnya
Langkah 1: Tentukan antarmuka di cn.happy.dao
Paket cn.happy.dao; import java.util.list; import cn.happy.entity.dept; antarmuka publik Ideptdao {// Lihat semua ------------ getalldept harus sama dengan ID dalam daftar publik konfigurasi kecil <dept> getalldept ();} Langkah 2: Konfigurasi Konfigurasi Kecil Idept.xml
Analisis: Atribut ID di Select harus sama dengan nama metode antarmuka di antarmuka; Nama paket atribut namespace dari mapper adalah cn.happy.dao.ideptdao antarmuka
<? xml versi = "1.0" encoding = "utf-8"?> <! Doctype mapperpublic "-// mybatis.org//dtd mapper 3.0 // en" "http://mybatis.org/dtd/mybatis-3-mapper namespace = "cn.happy.dao.ideptDao"> <pilih id = "getAllDept" resultType = "cn.happy.entity.dept"> Pilih * dari dept </pilih> </mapper>
Langkah 3: Kelas Uji
Analisis: Ada dua cara untuk melihat semua informasi
1) sesi.
2) IDEPTDAO mapper = session.getMapper (IdeptDao.class); setara dengan kelas implementasi, getMapper adalah tipe yang kuat
// 01view Semua informasi getMapper () Nama metode kelas antarmuka harus sama dengan ID konfigurasi kecil @testpublic void testSelectall () {SQLSession session = factory.opensession (); // Gunakan tipe lemah ========= CLASS entitas. Nama ID dalam konfigurasi kecil ============ String/*Daftar <dept> list = session.selectList ("cn.happy.dao.ideptdao.getalldept"); for (dept dept: daftar) {System.out.println (dept.getDeptName (); Kelas Implementasi dalam Memori ================ Setara dengan Tipe Kuat // Mapper adalah kelas implementasi objek IDEPTDAO mapper = session.getMapper (IDEPTDAO.class); Daftar <dept> Daftar = mapper.getalldept (); untuk (dept dept: list) {system.out.println (dept.getDeptName ());} Langkah 4: Gunakan konfigurasi besar di seluruh teks
<? Xml Version = "1.0" encoding = "utf-8"?> <! Doctype configurationpublic "-// mybatis.org//dtd config 3.0 // en" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <iiS.org Small >-mybatis-3 Konfigurasi ke alias-> <Typealiases> <Typealias type = "cn.resultMap.enetity.emp" alias = "emp"/> </yypealiases> <lingkungan default = "pengembangan"> <lingkungan = "pengembangan"> <pooledManager Type = "JDBC"/<DataSource Type = "Pooling" value = "oracle.jdbc.oracledriver" /> <name properti = "url" value = "jdbc: oracle: tipis: @localhost: 1521: orcl" /> <nama properti = "nama pengguna" value = "Sa" /> < /"kata sandi" < /1 " /1" Tabel Basis Data-> <mappers> <mapper Resource = "cn/resultMap/enetity/emp.xml"/> </phappers> </donfiguration>
2. Tag Hasil
Analisis: Skenario yang digunakan adalah bahwa ketika properti kelas entitas tidak cocok dengan database, properti kelas entitas dan database harus konsisten. (Saya menggunakan kelas entitas sebelumnya)
Misalnya mencari semua karyawan dan departemen yang berafiliasi
Langkah 1: Buat antarmuka
Paket cn.resultmap.dao; import java.util.list; import cn.resultmap.enetity.emp; antarmuka publik Iempdao {// ambil semua karyawan dan departemen yang berafiliasi dengan daftar publik <emp> getAllemps ();} Langkah 2: Konfigurasikan properti dalam konfigurasi kecil
Analisis: Untuk satu pihak dengan perspektif karyawan yang besar, silakan gunakan asosiasi untuk menyematkan setiap atribut satu pihak. (Jika asosiasi dihapus, itu adalah gambaran dasar)
<? xml versi = "1.0" encoding = "utf-8"?> <! Doctype mapperpublic "-// mybatis.org//dtd mapper 3.0 // en" "http://mybatis.org/dtd/mybatis-3-mapper namespace = "cn.resultMap.dao.iempdao"> <resultMap type = "cn.resultMap.enetity.emp" id = "empmap"> <id properti = "empid" column = empid "/> <hasil Properti =" empname "kolom =" empidame "/> <empid"/empcity = "empname" kolom = "EmpName"/> <empid "a hasil =" KOLOMPITY = "KOLOMBITY" KOLOMBOME = "EmpName"/> <empid "Properti =" large employee perspective, please use association --><association property="dept" javaType="cn.resultMap.enetity.Dept"><result property="deptName" column="DEPTNAME"/><result property="deptNo" column="DEPTNO"/></association></resultMap><select id="getAllEmps" resultMap="empMap">select e.*, d.* Dari emp e, dept dwhere e.deptno = d.deptno </ pilih> </mapper>
Langkah 3: Kelas Uji
// ResultMap: Nama atribut entitas dan nama bidang tabel dijamin konsisten dengan resultMap // jika Anda melaporkan nullexception, lihat apakah asosiasi pemetaan konfigurasi kecil dikonfigurasi. Hasilmap dikonfigurasi @testpublic void testAllemp () {SQLSession session = factory.opensession (); iempdao mapper = session.getMapper (iempdao.class); daftar <emp> allemps = mappper.getallemps (); untuk (emp emp: allemps) {system.out.println (emp.getempname ()+"/t afiliasi departemen"+emp.getdept (). getDeptName ());} session.close ();} Langkah 4: Perkenalkan konfigurasi kecil dalam konfigurasi besar
3. Ekstrak kolom SQL
Analisis: SQL Tag menyederhanakan volume kode dalam konfigurasi kecil
<!-Penggunaan tag SQL-> <sql id = "kolom"> d.deptno, D. D. Deptname </sql> <!-Penggunaan tag SQL-> <pilih id = "getAllemps" hasil hasil = "empmap"> Pilih e.*, <Sertakan refid = "kolom"/> dari Rend E, Dept "> D. D.
4. Alias alias
Analisis: Tulis pada konfigurasi besar, sehingga alias dapat direferensikan dalam konfigurasi kecil
<!-Ubah nilai atribut tipe dalam konfigurasi alias alias ke alias-> <yypealiases> <typealias type = "cn.resultMap.enetity.emp" alias = "emp"/> </yypealiases>
5. Operasi Dinamis
Analisis: Elemen utama yang digunakan untuk mengimplementasikan SQL dinamis adalah:
Jika pilih (kapan, sebaliknya) di mana diatur
Misalnya melihat orang -orang di kota Beijing
Langkah 1: Antarmuka
Paket cn.resultmap.dao; import java.util.list; import cn.resultmap.enetity.emp; antarmuka publik Iempdao {// ambil semua karyawan dan departemen yang berafiliasi dengan daftar publik <emp> getAllemps ();}Langkah 2: Versi Kecil = "1.0" Encoding = "UTF-8"?>
<! Doctype mapperpublic "-// mybatis.org//dtd mapper 3.0 // en" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace = "cn.resultmap.dao.iemprac type = "cn.ResultMap.enetity.emp" id = "empmap"> <id properti = "empid" kolom = "empid"/> <hasil properti = "empname" kolom = "empname"/> <hasil properti = "empcity" kolom = "empcity"/<!-untuk satu pihak dengan perspektif karyawan yang besar, sumpah empcity = "empcity"/<! javatype = "cn.resultMap.enetity.dept"> <properti result = "deptname" kolom = "deptname"/> <properti hasil = "deptno" kolom = "deptno"/> </resultMap> <pilih id = "getAllemps" resultMap = "empmap"> pilih e.* E.Deptno = D.Deptno </select> <!-Query Dynamic Query-> <pilih id = "testAllempBuselect" parameterType = "cn.resultMap.enetity.emp" resultType = "cn.ResultMap.enetity.empp" hasil "cn.results. test = "empid! = null"> dan empid =#{empid} </if> <if test = "empname! = null"> dan empname =#{empname} </if> <if test = "empcity! = null"> dan empcity =#{empcity} </if> </where> Langkah 3: Tes
// kueri dinamis @testpublic void testselect () {sqlsession session = factory.opensession (); emp emp = emp emp (); // emp.setempname ("331"); emp.setempcity ("sh"); daftar <emp> daftar = daftar = sesi. Langkah 4: Perkenalkan konfigurasi kecil dalam konfigurasi besar
Misalnya memodifikasi informasi departemen
Langkah 1: Antarmuka
Langkah 2: Konfigurasi Kecil
<? xml versi = "1.0" encoding = "utf-8"?> <! Doctype mapperpublic "-// mybatis.org//dtd mapper 3.0 // en" "http://mybatis.org/dtd/mybatis-3-mapper namespace = "cn.resultMap.dao.ideptDao"> <resultMap type = "cn.happy.entity.dept" id = "deptresultMap"> <id properti = "deptno" kolom = "deptno"/> <hasil properti = "deptname" column "deptname" resultMap = "deptresultMap"> pilih d.*, e.* Dari dept d, emp e where d.deptno = e.deptno dan d.deptno =#{deptno} </pilih> <!-ubah kueri dinamis-> <pilih ID = "parameterType. Dept <Tatures> <if test = "deptno! = null"> deptno =#{deptno}, </if> <if test = "deptname! = null"> deptname =#{deptname}, </if> </set> di mana deptno =#{deptno} </if> </atur Langkah 3: Tes
/*** Modifikasi Dinamis**/@testpublic void testUpdate () {SQLSession session = factory.opensession (); dept dept = dept baru (); dept.setDeptName ("Departemen Keuangan"); dept.setDeptno (1); int count = session.update ("cn.resultmap.dao.ideptdao.testupDate", dept); session.commit (); System.out.println (Count); session.close ();}Di atas adalah penjelasan terperinci dari antarmuka mybatis 'getMapper (), tag HasilMap, alias alias, cobalah untuk mengekstrak kolom SQL, dan operasi dinamis. 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!