没有合适的资源?快使用搜索试试~ 我知道了~
MybatisPlus学习资料
需积分: 2 0 下载量 109 浏览量
2023-07-17
14:07:28
上传
评论
收藏 1.84MB PDF 举报
温馨提示
试读
24页
MybatisPlus学习资料
资源推荐
资源详情
资源评论
MyBatisPlus快速入门
MyBatis-Plus快速入门
介绍
特性:
1、mybatis-plus快速使用
2、基于mybatis-plus的入门helloworld---CRUD实验
3、不得不提的条件构造器---Wrapper
4.扩展
全局ID生成策略
逻辑删除
执行SQL分析打印
数据安全保护
乐观锁插件使用
5、代码生成器
介绍
MyBatisPlus(简称MP)是一个MyBatis的增强工具,在MyBatis的基础上只做增强不做改变,为简化开
发、提高效率而生。
就像魂斗罗中的1P、2P,基友搭配,效率翻倍。
特性:
无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑
损耗小:启动即会自动注入基本CURD,性能基本无损耗,直接面向对象操作
强大的CRUD操作:内置通用Mapper、通用Service,仅仅通过少量配置即可实现单表大部分CRUD操作,
更有强大的条件构造器,满足各类使用需求
支持Lambda形式调用:通过Lambda表达式,方便的编写各类查询条件,无需再担心字段写错
支持主键自动生成:支持多达4种主键策略(内含分布式唯一ID生成器Sequence),可自由配置,完美解
决主键问题
支持ActiveRecord模式:支持ActiveRecord形式调用,实体类只需继承Model类即可进行强大的CRUD操
作
支持自定义全局通用操作:支持全局通用方法注入(Writeonce,useanywhere)
内置代码生成器:采用代码或者Maven插件可快速生成Mapper、Model、Service、Controller层代码,支
持模板引擎,更有超多自定义配置等您来使用
内置分页插件:基于MyBatis物理分页,开发者无需关心具体操作,配置好插件之后,写分页等同于普通List
查询
分页插件支持多种数据库:支持MySQL、MariaDB、Oracle、DB2、H2、HSQL、SQLite、Postgre、
SQLServer等多种数据库
内置性能分析插件:可输出Sql语句以及其执行时间,建议开发测试时启用该功能,能快速揪出慢查询
内置全局拦截插件:提供全表delete、update操作智能分析阻断,也可自定义拦截规则,预防误操作
官网:
https://baomidou.com/
1、mybatis-plus快速使用
1.1、引入mybatis-plus相关maven依赖
1 <!‐‐https://mvnrepository.com/artifact/com.baomidou/mybatis‐plus‐‐>
2 <dependency>
3 <groupId>com.baomidou</groupId>
4 <artifactId>mybatis‐plus</artifactId>
5 <version>3.3.1</version>
6 </dependency>
引入mybatis-plus在springboot中的场景启动器
1 <!‐‐https://mvnrepository.com/artifact/com.baomidou/mybatis‐plus‐boot‐starter‐‐>
2 <dependency>
3 <groupId>com.baomidou</groupId>
4 <artifactId>mybatis‐plus‐boot‐starter</artifactId>
5 <version>3.3.1</version>
6 </dependency>
ps:切记不可再在pom.xml文件中引入mybatis与mybatis-spring的maven依赖,这一点,mybatis-plus的官方文档中已经
说明的很清楚了.
1.2、创建数据表
(1)SQL语句
1 ‐‐创建表
2 CREATETABLEtbl_employee(
3 idINT(11)PRIMARYKEYAUTO_INCREMENT,
4 last_nameVARCHAR(50),
5 emailVARCHAR(50),
6 genderCHAR(1),
7 ageINT
8 );
9 INSERTINTOtbl_employee(last_name,email,gender,age)VALUES('Tom','[email protected]',1,22);
10 INSERTINTOtbl_employee(last_name,email,gender,age)VALUES('Jerry','[email protected]',0,25);
11 INSERTINTOtbl_employee(last_name,email,gender,age)VALUES('Black','[email protected]',1,30);
12 INSERTINTOtbl_employee(last_name,email,gender,age)VALUES('White','[email protected]',0,35);
(2)数据表结构
1.3、创建javabean
根据数据表新建相关实体类
1 packagecom.example.demo.pojo;
2
3 publicclassEmployee{
4 privateIntegerid;
5 privateStringlastName;
6 privateStringemail;
7 privateIntegergender;
8 privateIntegerage;
9 publicEmployee(){
10 super();
11 //TODOAuto‐generatedconstructorstub
12 }
13 publicEmployee(Integerid,StringlastName,Stringemail,Integergender,Integerage){
14 super();
15 this.id=id;
16 this.lastName=lastName;
17 this.email=email;
18 this.gender=gender;
19 this.age=age;
20 }
21 publicIntegergetId(){
22 returnid;
23 }
24 publicvoidsetId(Integerid){
25 this.id=id;
26 }
27 publicStringgetLastName(){
28 returnlastName;
29 }
30 publicvoidsetLastName(StringlastName){
31 this.lastName=lastName;
32 }
33 publicStringgetEmail(){
34 returnemail;
35 }
36 publicvoidsetEmail(Stringemail){
37 this.email=email;
38 }
39 publicIntegergetGender(){
40 returngender;
41 }
42 publicvoidsetGender(Integergender){
43 this.gender=gender;
44 }
45 publicIntegergetAge(){
46 returnage;
47 }
48 publicvoidsetAge(Integerage){
49 this.age=age;
50 }
51 @Override
52 publicStringtoString(){
53 return"Employee[id="+id+",lastName="+lastName+",email="+email+",gender="+gender+
",age="
54 +age+"]";
55 }
56
57
58 }
1.4、配置application.proprties
数据源使用druid
1 spring.datasource.username=root
2 spring.datasource.password=20182022
3 spring.datasource.url=jdbc:mysql://127.0.0.1:3306/my?useUnicode=true&characterEncoding=UTF‐8&useSSL=fa
lse&serverTimezone=GMT%2B8
4 spring.datasource.driver‐class‐name=com.mysql.cj.jdbc.Driver
5
6 spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
2、基于mybatis-plus的入门helloworld---CRUD实验
ps:在进行crud实验之前,简单对mybatis与mybatis-plus做一个简单的对比
2.1、mybatis与mybatis-plus实现方式对比
(1)提出问题:假设我们已存在一张tbl_employee表,且已有对应的实体类Employee,实现tbl_employee表的CRUD
操作我们需要做什么呢?
(2)实现方式:基于Mybatis需要编写EmployeeMapper接口,并手动编写CRUD方法提供EmployeeMapper.xml映
射文件,并手动编写每个方法对应的SQL语句.基于Mybatis-plus只需要创建EmployeeMapper接口,并继承
BaseMapper接口.这就是使用mybatis-plus需要完成的所有操作,甚至不需要创建SQL映射文件。
2.2、BaseMapper接口介绍
(1)如何理解核心接口BaseMapper?
在使用Mybatis-Plus是,核心操作类是BaseMapper接口,其最终也是利用的Mybatis接口编程的实现机制,其默认提供
了一系列的增删改查的基础方法,并且开发人员对于这些基础操作不需要写SQL进行处理操作(Mybatis提供的机制就是
需要开发人员在mapper.xml中提供sql语句),那样我们可以猜测肯定是Mybatis-Plus完成了BaseMapper接口提供的
方法的SQL语句的生成操作。
(2)BaseMapper接口为我们定义了哪些方法?
BaseMapper接口源码:
1 /*
2 *Copyright(c)2011‐2020,baomidou([email protected]).
3 *<p>
4 *LicensedundertheApacheLicense,Version2.0(the"License");youmaynot
5 *usethisfileexceptincompliancewiththeLicense.Youmayobtainacopyof
6 *theLicenseat
7 *<p>
8 *https://www.apache.org/licenses/LICENSE‐2.0
9 *<p>
10 *Unlessrequiredbyapplicablelaworagreedtoinwriting,software
11 *distributedundertheLicenseisdistributedonan"ASIS"BASIS,WITHOUT
12 *WARRANTIESORCONDITIONSOFANYKIND,eitherexpressorimplied.Seethe
13 *Licenseforthespecificlanguagegoverningpermissionsandlimitationsunder
14 *theLicense.
15 */
16 packagecom.baomidou.mybatisplus.core.mapper;
17
18 importcom.baomidou.mybatisplus.core.conditions.Wrapper;
19 importcom.baomidou.mybatisplus.core.metadata.IPage;
20 importcom.baomidou.mybatisplus.core.toolkit.Constants;
21 importorg.apache.ibatis.annotations.Param;
22
23 importjava.io.Serializable;
24 importjava.util.Collection;
25 importjava.util.List;
26 importjava.util.Map;
27
28 /**
29 *Mapper继承该接口后,无需编写mapper.xml文件,即可获得CRUD功能
30 *<p>这个Mapper支持id泛型</p>
31 *
32 *@authorhubin
33 *@since2016‐01‐23
34 */
35 publicinterfaceBaseMapper<T>extendsMapper<T>{
36
37 /**
38 *插入一条记录
39 *
40 *@paramentity实体对象
41 */
42 intinsert(Tentity);
43
44 /**
45 *根据ID删除
46 *
47 *@paramid主键ID
48 */
49 intdeleteById(Serializableid);
50
51 /**
52 *根据columnMap条件,删除记录
53 *
54 *@paramcolumnMap表字段map对象
55 */
56 intdeleteByMap(@Param(Constants.COLUMN_MAP)Map<String,Object>columnMap);
57
58 /**
59 *根据entity条件,删除记录
60 *
61 *@paramwrapper实体对象封装操作类(可以为null)
62 */
剩余23页未读,继续阅读
资源评论
飞鸟的心情
- 粉丝: 18
- 资源: 3
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- PxCook-像素大厨Mac版本安装包
- 基于mysql和python的学生选课系统【课程设计(实验报告+源码)】
- PxCook-像素大厨Windows版本安装包
- aspose-words-23.12-jdk16 有水印
- [大模型部署]在C# Winform中使用文心一言ERNIE-3.5 4K 聊天模型
- python毕业设计-基于Django+OpenCV的二维码生成与识别系统设计与实现.zip
- python毕业设计-基于Django+OpenCV的二维码生成与识别系统设计与实现+使用说明.zip
- 基于STM32单片机空气监测系统设计源码+详细文档+配套全部资料(毕业设计).zip
- rdf0412-kcu116-pcie-c-2019-1.zip(XILINX KCU116 源码)
- 基于C#语言的winform界面火车票订票系统(源码+实验报告)
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功