ลักษณะของ mybatis-plus คืออะไร
1. การสร้างรหัส 2. ตัวสร้างเงื่อนไข
สำหรับฉันจุดประสงค์หลักคือการใช้ตัวสร้างเงื่อนไขที่ทรงพลัง
ขั้นตอนการใช้งานด่วน:
1. เพิ่มการพึ่งพาไฟล์ POM
<การพึ่งพา> <roupId> org.apache.velocity </groupId> <ratifactid> ความเร็ว </artifactid> <version> 1.7 </เวอร์ชัน> </การพึ่งพา> <predency> <roupid> com.baomidou </groupid>
หมายเหตุ: mybatis-plus จะรักษาการพึ่งพาของ mybatis และ mybatis-spring โดยอัตโนมัติดังนั้นจึงไม่จำเป็นต้องแนะนำสองหลังเพื่อหลีกเลี่ยงความขัดแย้งของรุ่น
2. แก้ไขไฟล์การกำหนดค่า
เพียงแทนที่ SQLSessionFactory ของ MyBatis ด้วย MyBatis-Plus mybatis-plus ทำเฉพาะส่วนขยายที่ใช้งานได้:
<bean id = "sqlsessionfactory"> <property name = "dataSource" ref = "dataSource"/> <!-การสแกนอัตโนมัติของไฟล์ mapping.xml-> <property name = "mapperlocations" value = "mybatis/*/*. xml"/> value = "classpath: mybatis/mybatis-config.xml"/> <property name = "typealiasespackage" value = "com.baomidou.springmvc.model.*"/> <property name = "plugins"> <array> <! value = "mysql"/> </ebean> </erray> </property> <!-การฉีดการกำหนดค่าทั่วโลก-> <property name = "globalConfig" ref = "globalconfig"/> </ebean>
ในการกำหนดค่าข้างต้นนอกเหนือจากการกำหนดค่าปกติของ MyBatis แล้วยังมีการกำหนดค่าเพิ่มเติมและการกำหนดค่าทั่วโลกของปลั๊กอินการปัดส่วน MyBatis-Plus ให้การใช้ปลั๊กอินการแบ่งหน้าอย่างสะดวกและยังมีการกำหนดค่าทั่วโลกดังนี้:
<bean id = "globalconfig"> <!-auto-> 0` ("database id-id-increment") input-> `1` (ID อินพุตผู้ใช้") id_worker-> `2` (" ide id ") uuid->` 3` ( Oracle-> `Oracle` db2->` db2` h2-> `h2` hsql->` hsql` sqlite-> `sqlite` postgre->` postgresql` sqlserver2005-> `sqlver2005541 รายการนี้-> <!-<property name = "dbType" value = "Oracle" />-> <!-ตารางโกลบอลตั้งค่าจริงสำหรับชื่อ Underscore-> <property name = "DBColumnunderline" value = "true" /> </ebean>ณ จุดนี้แม้ว่างานกำหนดค่าจะเสร็จสมบูรณ์ให้ใช้ตัวอย่างง่ายๆเพื่อสัมผัสกับการใช้งาน
1. สร้างตารางผู้ใช้ใหม่:
@tablename ("ผู้ใช้") ผู้ใช้ระดับสาธารณะใช้ serializable { / ** รหัสผู้ใช้* / รหัสส่วนตัวส่วนตัว; / ** ชื่อผู้ใช้*/ ชื่อสตริงส่วนตัว; / ** อายุผู้ใช้*/ อายุจำนวนเต็มส่วนตัว; @tablefield (มีอยู่ = เท็จ) สถานะสตริงส่วนตัว;}มีคำอธิบายประกอบสองข้อควรทราบที่นี่ ครั้งแรกคือ @tablename ("ผู้ใช้") ซึ่งระบุการเชื่อมโยงกับตารางฐานข้อมูล คำอธิบายประกอบที่นี่หมายความว่าควรมีตารางที่ชื่อผู้ใช้ในฐานข้อมูลของคุณที่สอดคล้องกับมันและชื่อคอลัมน์ของตารางข้อมูลควรเป็นคุณลักษณะของคลาสผู้ใช้ สำหรับแอตทริบิวต์ที่อยู่ในคลาสผู้ใช้ แต่ไม่มีในตารางผู้ใช้จำเป็นต้องใช้คำอธิบายประกอบที่สอง @TableField (มีอยู่ = เท็จ) เพื่อแยกแอตทริบิวต์ในคลาสผู้ใช้
2. สร้างอินเทอร์เฟซเลเยอร์ DAO ใหม่ USERMAPPER:
/*** อินเทอร์เฟซเลเยอร์การควบคุมฐานข้อมูลตารางผู้ใช้*/อินเทอร์เฟซสาธารณะ usermapper ขยาย Basemapper <ผู้ใช้> {@Select ("SelectUserList") รายการ <ผู้ใช้> SelectUSerList (หน้า pagination สถานะสตริง);}อินเทอร์เฟซ DAO จำเป็นต้องใช้ basemapper เพื่อให้สามารถใช้วิธีการห่อหุ้มจำนวนมาก นอกจากนี้คุณยังสามารถเขียนวิธีด้วยตัวเอง @Select Annotation หมายถึงไฟล์ USERMAPPER ที่อ้างอิงจากขั้นตอนที่สาม
3. สร้างไฟล์กำหนดค่า USERMAPPER ใหม่:
<? xml version = "1.0" การเข้ารหัส = "utf-8"?> <! doctype mapper สาธารณะ "-// mybatis.org//dtd mapper 3.0 // en" "http://mybatis.org/dtd/mybatis-3-mapper.dtd namespace = "com.baomidou.springmvc.mapper.system.usermapper"> <!-คอลัมน์ผลลัพธ์การสืบค้นทั่วไป-> <sql id = "base_column_list"> id, ชื่อ, อายุ </sql>
4. สร้าง Userservice คลาสบริการชั้นใหม่:
/** * * * * * * * * * * * * * * ผู้ใช้ข้อมูลตารางข้อมูลการใช้งานอินเทอร์เฟซการใช้งานชั้นเรียนการใช้งาน * */@ServicePublic คลาส Userservice ขยาย ServiceImpl <USERMAPPER, ผู้ใช้> {หน้าสาธารณะ <ผู้ใช้> SelectUSerPage (หน้า <ผู้ใช้> หน้าสตริงสถานะ) {page.setRecords หน้ากลับ; -Userservice สืบทอดคลาส ServiceImpl MyBatis-plus ฉีด Usermapper เข้ามาในตัวเราด้วยวิธีนี้ ด้วยวิธีนี้เราสามารถใช้วิธีการหลายวิธีโดยเลเยอร์บริการตามค่าเริ่มต้นและเรายังสามารถเรียกวิธีการที่เราเขียนในเลเยอร์ DAO เพื่อใช้งานฐานข้อมูล คลาสหน้าเป็นแบบจำลองที่ mybatis-plus ให้ฟังก์ชั่นการแบ่งหน้า, สืบทอดการปนเปื้อนดังนั้นเราไม่จำเป็นต้องเขียนคลาสหน้าอื่นด้วยตัวเองเพียงแค่ใช้โดยตรง
5. สร้าง UserController เลเยอร์คอนโทรลเลอร์ใหม่
@ControllerPublic Class UserController ขยาย Basecontroller {@autowired ส่วนตัว iuserService Userservice; @ResponseBody @RequestMapping ("/page") วัตถุสาธารณะ SelectPage (รุ่นโมเดล) {หน้าหน้า = หน้าใหม่ (1,10); page = userservice.selectUserPage (หน้า "ปกติ"); หน้ากลับ; -ข้างต้นทำฟังก์ชั่นพื้นฐานให้เสร็จสมบูรณ์ ลองมาดูผู้สร้างแบบมีเงื่อนไข
ผู้สร้างแบบมีเงื่อนไขสำหรับ mybatis-plus
ก่อนอื่นมาดูความเรียบง่ายและการใช้งานจริงของอินสแตนซ์ผู้สร้างแบบมีเงื่อนไข
การทดสอบโมฆะสาธารณะ () {EntityWrapper EW = New EntityWrapper (); ew.setEntity (ผู้ใช้ใหม่ ()); ชื่อสตริง = "วัง"; อายุจำนวนเต็ม = 16; ew.where ("name = {0}", ชื่อ) .andnew ("อายุ> {0}", อายุ). orderby ("อายุ"); รายการ <user> list = userservice.selectList (EW); หน้า 2 = UserserVice.SelectPage (หน้า, ew); -ที่นี่ entityWrapper คลาส wrapper แบบมีเงื่อนไขใช้เพื่อรวบรวมคำสั่ง SQL หลักการยังเข้าใจง่าย ในรหัสข้างต้นผลลัพธ์ของการสืบค้นรายการแรกคือการสืบค้นบันทึกทั้งหมดในฐานข้อมูลที่มีชื่อ = วังและอายุ> อายุ 16 ปีและเรียงลำดับตามอายุ แบบสอบถามที่สองคือการเพิ่มฟังก์ชั่นการแบ่งหน้าอื่น
โดยทั่วไปการใช้ EntityWrapper สามารถกรอกแบบสอบถามแบบมีเงื่อนไขบางอย่างได้ แต่ถ้าใช้วิธีการสืบค้นบ่อยมากขอแนะนำให้เขียนใน USERMAPPER ด้วยตัวคุณเอง
วิธีการทำแผนที่แบบกำหนดเองสามารถใช้ EntityWrapper ได้หรือไม่? แน่นอนมันเป็นไปได้เช่นกัน
ตัวอย่างนี้ได้รับในเอกสาร
1. คำจำกัดความใน Mappper:
รายการ <user> SelectMypage (Rowbounds Rowbounds, @Param ("EW") Wrapper <T> wrapper);
2. กำหนดในไฟล์ Mapper:
<select id = "selectMyPage" resultType = "ผู้ใช้"> เลือก * จากผู้ใช้ $ {ew.sqlsegment} </select>สำหรับการประกบแบบมีเงื่อนไขของ EntityMapper โดยทั่วไปเราสามารถใช้งานได้โดยที่และหรือ, หรือ, ORDBY, ORDERBY และไวยากรณ์อื่น ๆ ที่ใช้กันทั่วไปใน SQL และวิธีการก่อสร้างที่เฉพาะเจาะจงสามารถรวมกันได้อย่างยืดหยุ่น
@TestPublic เป็นโมฆะ TESTTSQL11 () { / * * เอนทิตีที่มีเอาท์พุทวิธีการใช้แบบสอบถามเพื่อดูผลลัพธ์ * / ew.setEntity (ผู้ใช้ใหม่ (1)); ew.where ("name = {0}", "'Zhangsan'"). และ ("id = 1") .ornew ("สถานะ = {0}", "0"). หรือ ("สถานะ = 1"). ไม่เหมือน ("nlike", "notvalue") .andnew ("pwd = 11"). isnotnull ("n1, n2"). isnull ("n3") .groupby ("x1"). groupby ("x2, x3") .having ("x1 = 11") System.out.println (ew.getsqlsegment ());}เอกสารอ้างอิง
เอกสารทางการของ MyBaits-Plus
สรุป
ด้านบนเป็นบทช่วยสอนการแนะนำอย่างรวดเร็วสำหรับเครื่องมือ MyBatis Plus ที่แนะนำโดยบรรณาธิการ ฉันหวังว่ามันจะเป็นประโยชน์กับคุณ หากคุณมีคำถามใด ๆ โปรดฝากข้อความถึงฉันและบรรณาธิการจะตอบกลับคุณทันเวลา!