<> preface

In the persistence layer framework mybatis More applications , And the proportion is gradually rising . Usually the combination of projects is SSM.mybatis Why fire , Because of his flexibility , Easy to use , Optimization is relatively easy .

mybatis Direct execution of sql sentence , sql The statement is written in xml In the file , use mybatis Multiple required xml
configuration file , To some extent, it is cumbersome . Generally, the operation of database should be involved CURD.

mybatis-plus Yes mybatis Enhancements on , Reduced xml Configuration of , Almost no need to write xml You can make a single table
CURD, It's very convenient , It greatly provides the efficiency of development . We write programs to make life easier .

<> What is? mybatis-plus?

MyBatis-Plus( abbreviation MP) It's a MyBatis Enhanced tools for , stay MyBatis On the basis of, only enhance without change , To simplify development , Born to improve efficiency .

MyBatis-Plus stay MyBatis A coat was put over it , Single table CURD Almost all operations can be performed by MyBatis-Plus
Substitute execution . It also provides various query methods , Paging behavior . As a user, there is no need to write xml, Direct call MyBatis-Plus Provided API That's it .

<> Quick start

You can start in a few minutes MP, The premise is to be familiar with mybatis,spring or spring boot, maven, master lambda Expressions can improve efficiency .

Prepare the environment :

* have Java Development environment and corresponding IDE
* be familiar with Spring Boot
* be familiar with Maven
Prepare data sheet

create database user; use user; CREATE TABLE `user` ( `id` int(11) NOT NULL
AUTO_INCREMENT, `name` varchar(50) DEFAULT NULL, `email` varchar(80) DEFAULT
NULL, `age` int(11) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB
AUTO_INCREMENT=1 DEFAULT CHARSET=utf8; insert into user values(null,' Zhang San ',
IDEA Medium configuration maven

establish spring boot application

use Spring Initializr Quickly initialize a Spring Boot engineering
idea in File – New Project choice Spring Initializr Fill in project information after , Create project .

Project information

Dependent selection SQL Medium MyBatis Framework

Define project name and path

<>pom File add mybatis-plus rely on
<!-- mybatis-plus --> <dependency> <groupId>com.baomidou</groupId> <artifactId>
mybatis-plus-boot-starter</artifactId> <version>3.0.5</version> </dependency>
<!-- mysql drive --> <dependency> <groupId>mysql</groupId> <artifactId>
mysql-connector-java</artifactId> <version>8.0.25</version> </dependency>
application.properties or application.yml Add database configuration
spring.datasource.username=root spring.datasource.password=root
spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql
:// username: root password: root
<> Create entity class

@TableId Set primary key , IdType.AUTO Generate primary keys using automatic growth

<> establish mapper Interface

inherit MyBatis Plus Medium BaseMapper , stay UserMapper Used in MP Methods in , real
present CURD.

<> add to @MapperScan scanning Mapper folder

<> test

view the database

<> to configure mybatis journal
mybatis-plus: configuration: log-impl:

<>CRUD Basic Usage

CRUD The operation is from BaseMapper Methods in .BaseMapper Communist Party of China 17 Methods ,CRUD Operations have multiple methods with different parameters . inherit
BaseMapper You can use one of these methods .

BaseMapper Method list :

<>insert operation

notes :insert() Return value int, Number of rows successfully inserted , Number of successful records .getId() Get primary key value , After the number of rows is successfully affected, the primary key value will be automatically assigned to the primary key of the entity class id.

<>update operation

Update previous database

Updated database

be careful :null The fields of are not updated

Not set email Field of , So at this time email The fields are null

SQL Statement is not set email


<>delete operation

There are multiple ways to delete
deleteById: Delete by primary key

according to Map Delete condition in

notes : Delete condition encapsulated in Map in ,key Is column name ,value Is value , Multiple key between and join .

journal :

Batch delete

Delete the id Put List , Pass to deleteBatchIds()

journal :

<>select operation

notes : No query results , No error will be reported .


Batch query record

notes : according to id Query record , Put multiple items to be queried id Deposit to List, call selectBatchIds(),


use Map Conditional query
The condition field to be queried put reach Map,key Is a field ,value Is the condition value . Multiple conditions are and join . call selectByMap(), afferent Map
As a parameter , The return value is List aggregate .