Was sind die Eigenschaften von mybatis-plus
1. Codegenerierung 2. Bedingter Konstruktor
Für mich ist der Hauptzweck, seinen leistungsstarken bedingten Bauunternehmer zu verwenden.
Schnelle Schritte zu verwenden:
1. Fügen Sie POM -Dateiabhängigkeiten hinzu
<dependency> <groupId>org.apache.velocity</groupId> <artifactId>velocity</artifactId> <version>1.7</version></dependency><dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus</artifactId> <version>2.0.1</version> </dependency>
Hinweis: MyBatis-plus führt automatisch die Abhängigkeiten von MyBatis und MyBatis-Spring bei, sodass die letztgenannten beiden letztgenannten Versionen nicht vorgestellt werden müssen, um Versionskonflikte zu vermeiden.
2. Ändern Sie die Konfigurationsdatei
Ersetzen Sie einfach MyBatis 'SQLSessionFactory durch mybatis-plus. MyBatis-plus macht nur einige funktionale Erweiterungen:
<bean id = " value = "classPath: mybatis/mybatis-config.xml"/> <Eigenschaft name = "typealiaspackage" value = "com.baomidou.springMvc.model. value = "mysql"/> </bean> </array> </property> <!-Globale Konfigurationsinjektion-> <Eigenschaft name = "globalConfig" Ref = "GlobalConfig"/> </bean>
In der obigen Konfiguration gibt es zusätzlich zur regulären Konfiguration von MyBatis eine zusätzliche Konfiguration und globale Konfiguration des Paginations-Plug-Ins. MyBatis-Plus bietet eine sehr bequeme Verwendung des Pagination-Plug-Ins, und es gibt auch eine globale Konfiguration wie folgt:
<bean id="globalConfig"> <!-- AUTO->0`("Database ID self-increment") INPUT->`1`(User input ID") ID_WORKER->`2`("Global unique ID") UUID->`3`("Global unique ID") --> <property name="idType" value="2" /> <!-- MYSQL->`mysql` Oracle-> `oracle` db2->` db2` h2-> `h2` hsql->` hsql` sqlite-> ` Dieses Element-> <!-<Eigenschaft name = "dBtype" value = "oracle" />-> <!-Global Table legt True für Unterstrahlungsname fest-> <Eigenschaft name = "dbcolumnunderLine" value = "true" /> < /bean>Verwenden wir an diesem Punkt, auch wenn die Konfigurationsarbeiten abgeschlossen sind, ein einfaches Beispiel, um die Verwendung zu erleben.
1. Erstellen Sie eine neue Benutzertabelle:
@TableName ("Benutzer") öffentliche Klasse Benutzer implementiert serialisierbare { / ** Benutzer -ID* / private long ID; / ** Benutzername*/ privater Zeichenfolge Name; / ** User Age*/ Private Ganzzahl; @TableField (exist = false) Privat String Status;}Hier sind zwei Anmerkungen zu beachten. Der erste ist @tableName ("Benutzer"), der die Assoziation mit der Datenbanktabelle angibt. Die Annotation hier bedeutet, dass in Ihrer Datenbank eine Tabelle mit dem Namen Benutzer namens Benutzer vorhanden sein sollte, und der Spaltenname der Datentabelle sollte die Attribute der Benutzerklasse sein. Für Attribute, die in der Benutzerklasse enthalten sind, aber in der Benutzertabelle nicht enthalten sind, ist eine zweite Annotation @TableField (existieren = false) erforderlich, um Attribute in der Benutzerklasse auszuschließen.
2. Erstellen Sie eine neue DAO -Layer -Schnittstelle UsMapper:
/*** Benutzerabetabelle Datenbank Steuerungsschichtschnittstelle*/Public Interface UsMapper erweitert Basemapper <Benetzbuchs> {@select ("SelectUserList") List <Benetzwerte> SelectUserList (Paginationsseite, String -Status);}Die DAO -Schnittstelle muss Basemapper implementieren, damit viele eingekapselte Methoden verwendet werden können. Darüber hinaus können Sie auch Methoden selbst schreiben. @Select Annotation bezieht sich auf die aus dem dritte Schritt verwiesene UsMapper -Datei.
3. Erstellen Sie eine neue UsMapper -Konfigurationsdatei:
<? namespace = "com.baomidou.springMvc.mapper.System.usMapper"> <!-Spalte der allgemeinen Queryergebnisse-> <SQL ID = "Base_column_List"> ID, Name, Alter </sql> <select id = "selectuserList" resultTtYPe = user.
4. Erstellen Sie eine neue Service -Layer -Klasse Userservice:
/** * * * Benutzer Tabelle Data Service Layer Interface Implementierungsklasse * */@servicePublic class UserService erweitert ServiceImpl <usermapper, user> {public page <Unter> selectUserPage (Seite <Unters <Benutzer> Seite, String -Status) {page.setRecords (Basemapper.SelectUserList (Page, State)); Rückgabeseite; }}UserService erbt die ServiceImpl -Klasse. MyBatis-plus injiziert UsMapper auf diese Weise in uns. Auf diese Weise können wir standardmäßig viele Methoden der Serviceschicht verwenden, und wir können auch die Methoden aufrufen, die wir in der DAO -Ebene schreiben, um die Datenbank zu betreiben. Die Seitenklasse ist ein Modell, das MyBatis-Plus Paginationsfunktion bietet, erbringt Pagination, sodass wir nicht selbst eine andere Seitenklasse schreiben und sie einfach direkt verwenden müssen.
5. Erstellen Sie einen neuen Controller Layer UserController
@ControllerPublic Class UserController erweitert BaseController {@autowired private iUSerService UserService; @ResponseBody @RequestMapping ("/page") öffentliches Objekt SelectPage (Modellmodell) {Seite Seite = neue Seite (1,10); Page = UserService.SelectUserPage (Seite, "normal"); Rückgabeseite; }Das obige vervollständigt eine grundlegende Funktion. Werfen wir einen Blick auf seinen bedingten Baumeister.
Bedingter Baumeister für MyBatis-plus
Schauen wir uns zunächst die einfache und praktische Fähigkeit einer bedingten Bauherreninstanz an.
public void test () {EntityWrapper ew = new EntityWrapper (); ew.setentity (neuer user ()); String name = "wang"; Ganzzahlalter = 16; ew.where ("name = {0}", name) .andNew ("Alter> {0}", Alter) .OrDBY ("Alter"); Liste <Unters> list = userService.SelectList (EW); Seite Seite 2 = UserService.SelectPage (Seite, EW); }Hier wird ein konditionaler Wrapper Class EntityWrapper verwendet, um SQL -Anweisungen zusammenzustellen. Das Prinzip ist auch leicht zu verstehen. Im obigen Code besteht das Ergebnis der ersten Listenabfrage darin, alle Datensätze in der Datenbank mit Namen = Wang und Alter> 16 Jahre abzufragen und nach Alter zu sortieren. Die zweite Abfrage besteht darin, eine weitere Paginierungsfunktion hinzuzufügen.
Grundsätzlich kann die Verwendung von EntityWrapper einfach einige bedingte Abfragen ausfüllen. Wenn jedoch sehr häufig die Abfragemethode verwendet wird, wird empfohlen, sie selbst in UsMapper zu schreiben.
Kann die benutzerdefinierte Mapper -Methode EntityWrapper verwenden? Natürlich ist es auch möglich.
Ein Beispiel hierfür ist in der Dokumentation angegeben.
1. Definition in Mappper:
Liste <Benetzels> SelectMypage (RowBounds RowBounds, @param ("ew") Wrapper <T> Wrapper);
2. Definieren Sie in der Mapper -Datei:
<select id = "selectMypage" resultType = "user"> select * von user $ {ew.sqlsegment} </select>Für das bedingte Spleißen von EntityMapper können wir im Grunde genommen implementieren, wo und, oder Groupby, Orderby und andere in SQL üblicherweise verwendete Syntax, und die spezifischen Konstruktionsmethoden können flexibel kombiniert werden.
@Testpublic void testTSQL11 () { / * * Entity mit Abfrage -Verwendungsmethode Ausgabe, um das Ergebnis zu sehen * / ew.setentity (neuer Benutzer (1)); ew.where ("name = {0}", "'zhangsan'"). und ("id = 1") .ornew ("status = {0}", "0"). Oder ("Status = 1") .notlike ("n Like", "Notvalue") .andnew ("New = xx"). .AndNew ("pwd = 11"). isnotnull ("n1, n2"). isnull ("n3") .Groupby ("x1"). GroupBy ("x2, x3") .having ("x1 = 11"). System.out.println (ew.getSqlsegment ());}Referenzdokumente
Mybaits-Plus Offizielle Dokumentation
Zusammenfassen
Das obige Tutorial für das MyBatis Plus -Tool, das Ihnen vom Herausgeber vorgestellt wurde. Ich hoffe, es wird Ihnen hilfreich sein. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht und der Editor wird Ihnen rechtzeitig antworten!