工作中能用到Mybatis-plus吗?怎么用?

能不能用得到看项目,但学不学看你自己。下面给你2000字的笔记,记得收藏!!!

很多东西都是这样,你不学根本不知道哪里能用的上,只能凭空想象,所以有时间的话建议你能学一下,好歹这也是主流了。下面进入正题:

黑马程序员MybatisPlus深入浅出教程,快速上手mybatisplus_哔哩哔哩_bilibili黑马程序员MybatisPlus深入浅出教程,快速上手mybatisplus共计62条视频,包括:01.课程介绍、02.了解Mybatis-Plus之简介、03.了解Mybatis-Plus之特性、04.了解Mybatis-Plus之架构、05.了解Mybatis-Plus之作者介绍、06.创建数据库以及表、07.Mybatis-Plus快速开始之搭建工程、08.Mybatis实现查询findAll()方法、09.Mybatis+MP实现查询User、10.Spring+Mybatis+MP实现查询、11.快速开始之实现查询User、12.通用CRUD详解之插入操作、13.tableField注解详解、14.通用CRUD详解之根据id更新、15.通用CRUD详解之根据条件更新、16.通用CRUD详解之删除操作、17.删除操作(deleteByMap)、18.通用CRUD详解之删除操作(delete)、19.删除操作(deleteBatchIds)、20.查询操作(selectById)、21.查询操作(selectBatchIds)、22.查询操作(selectOne)、23.查询操作(selectCount)、24.查询操作(selectList)、25.查询操作(selectPage)、26.SQL注入的原理、27.Mybatis-Plus配置之基本配置)、28.(mapperLocations)、29.配置(typeAliasesPackage)、30.Mybatis-Plus配置之进阶配置、31.DB策略配置(idType)、32.DB策略配置(tablePrefix)、33.allEq的使用、34.基本比较操作、35.构造器之模糊查询、36.构造器之排序查询、37.Mybatis-Plus条件构造器之逻辑查询、38.select(指定查询字段)、39.课程总结、02.Mybatis-Plus之ActiveRecord简介、03.Mybatis-Plus之ActiveRecord开启AR之旅、04.Mybatis-Plus之ActiveRecord新增数据、05.Mybatis-Plus之ActiveRecord更新数据、06.Mybatis-Plus之ActiveRecord删除数据、07.Mybatis-Plus之ActiveRecord根据条件查询数据、08.Mybatis-Plus之Oracle 主键Sequence(部署Oracle环境)、09.Mybatis-Plus之Oracle 主键Sequence(创建表以及安装驱动包到本地仓库)、10.Mybatis-Plus之Oracle 主键Sequence(编码实现序列的使用)、11.Mybatis-Plus之插件(mybatis的插件机制)、12.Mybatis-Plus之插件(mybatis的插件机制 补充)、13.Mybatis-Plus之插件(执行分析插件)、14.Mybatis-Plus之插件(性能分析插件)、15.Mybatis-Plus之插件(乐观锁插件)、16.Mybatis-Plus之插件(乐观锁插件的特别说明)、17.Mybatis-Plus之Sql 注入器(编写MyBaseMapper、MySqlInjector)、18.Mybatis-Plus之Sql 注入器(测试以及改进)、19.Mybatis-Plus之自动填充功能、20.Mybatis-Plus之逻辑删除、21.Mybatis-Plus之通用枚举、22.Mybatis-Plus之代码生成器、23.MybatisX 快速开发插件、24.课程总结等,UP主更多精彩视频,请关注UP账号。https://www.bilibili.com/video/BV1rE41197jR?spm_id_from=333.999.0.0

 

一、了解Mybatis-Plus

1、Mybatis-Plus介绍

MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。

官网:https://mybatis.plus/ 或 https://mp.baomidou.com/

2、代码以及文档

文档地址:mybatis.plus

源码地址:https://github.com/baomidou/mybatis-plus

3、特性

  • 无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑
  • 损耗小:启动即会自动注入基本 CURD,性能基本无损耗,直接面向对象操作
  • 强大的 CRUD 操作:内置通用 Mapper、通用 Service,仅仅通过少量配置即可实现单表大部分 CRUD 操作, 更有强大的条件构造器,满足各类使用需求
  • 支持 Lambda 形式调用:通过 Lambda 表达式,方便的编写各类查询条件,无需再担心字段写错
  • 支持多种数据库:支持 MySQL、MariaDB、Oracle、DB2、H2、HSQL、SQLite、Postgre、
  • SQLServer2005、SQLServer 等多种数据库
  • 支持主键自动生成:支持多达 4 种主键策略(内含分布式唯一 ID 生成器 - Sequence),可自由配置,完美解 决主键问题
  • 支持 XML 热加载:Mapper 对应的 XML 支持热加载,对于简单的 CRUD 操作,甚至可以无 XML 启动
  • 支持 ActiveRecord 模式:支持 ActiveRecord 形式调用,实体类只需继承 Model 类即可进行强大的 CRUD 操 作
  • 支持自定义全局通用操作:支持全局通用方法注入( Write once, use anywhere )
  • 支持关键词自动转义:支持数据库关键词(order、key......)自动转义,还可自定义关键词
  • 内置代码生成器:采用代码或者 Maven 插件可快速生成 Mapper 、 Model 、 Service 、 Controller 层代码, 支持模板引擎,更有超多自定义配置等您来使用
  • 内置分页插件:基于 MyBatis 物理分页,开发者无需关心具体操作,配置好插件之后,写分页等同于普通List 查询
  • 内置性能分析插件:可输出 Sql 语句以及其执行时间,建议开发测试时启用该功能,能快速揪出慢查询
  • 内置全局拦截插件:提供全表 delete 、 update 操作智能分析阻断,也可自定义拦截规则,预防误操作
  • 内置 Sql 注入剥离器:支持 Sql 注入剥离,有效预防 Sql 注入攻击

4、架构

工作中能用到Mybatis-plus吗?怎么用?_第1张图片

二、快速开始

对于Mybatis整合MP有常常有三种用法,分别是Mybatis+MP、Spring+Mybatis+MP、Spring Boot+Mybatis+MP。

1、创建数据库以及表

工作中能用到Mybatis-plus吗?怎么用?_第2张图片

-- 创建测试表 
CREATE TABLE `tb_user` ( 
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID', 
   `user_name` varchar(20) NOT NULL COMMENT '用户名', 
   `password` varchar(20) NOT NULL COMMENT '密码', 
   `name` varchar(30) DEFAULT NULL COMMENT '姓名', 
   `age` int(11) DEFAULT NULL COMMENT '年龄', 
   `email` varchar(50) DEFAULT NULL COMMENT '邮箱', 
   PRIMARY KEY (`id`) 
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8; 

-- 插入测试数据 
INSERT INTO `tb_user` (`id`, `user_name`, `password`, `name`, `age`, `email`) VALUES 
('1', 'zhangsan', '123456', '张三', '18', '[email protected]'); 
INSERT INTO `tb_user` (`id`, `user_name`, `password`, `name`, `age`, `email`) VALUES 
('2', 'lisi', '123456', '李四', '20', '[email protected]'); 
INSERT INTO `tb_user` (`id`, `user_name`, `password`, `name`, `age`, `email`) VALUES 
('3', 'wangwu', '123456', '王五', '28', '[email protected]'); 
INSERT INTO `tb_user` (`id`, `user_name`, `password`, `name`, `age`, `email`) VALUES 
('4', 'zhaoliu', '123456', '赵六', '21', '[email protected]'); 
INSERT INTO `tb_user` (`id`, `user_name`, `password`, `name`, `age`, `email`) VALUES 
('5', 'sunqi', '123456', '孙七', '24', '[email protected]'); 1

2、创建工程

工作中能用到Mybatis-plus吗?怎么用?_第3张图片

导入依赖:

 
 
     4.0.0 

     cn.itcast.mp 
     itcast-mybatis-plus 
     1.0-SNAPSHOT 
      
          itcast-mybatis-plus-simple 
      
     pom 

      
          
          
             com.baomidou 
             mybatis-plus 
             3.1.1 
          
          
          
             mysql 
             mysql-connector-java 
             5.1.47 
          
          
          
             com.alibaba 
             druid 
             1.0.11 
          
          
          
             org.projectlombok 
             lombok 
             true 
             1.18.4 
          
          
             junit 
             junit 
             4.12 
          
          
             org.slf4j 
             slf4j-log4j12 
             1.6.4 
          
      
      
          
             
                org.apache.maven.plugins 
                maven-compiler-plugin 
                 
                    1.8 
                    1.8 
                 
          
      
  

三、通用CRUD

插入操作:

/**
* 插入一条记录 
*
* @param entity 实体对象 
*/ 
int insert(T entity);

更新操作:

/**
* 根据 ID 修改 
*
* @param entity 实体对象 
*/ 
int updateById(@Param(Constants.ENTITY) T entity);

删除操作:

/**
* 根据 ID 删除 
*
* @param id 主键ID 
*/ 
int deleteById(Serializable id);

查询操作:

/**
* 根据 ID 查询 
*
* @param id 主键ID 
*/ 
T selectById(Serializable id);

四、配置

在MP中有大量的配置,其中有一部分是Mybatis原生的配置,另一部分是MP的配置,详情:mybatis.plus onfifig/

1、基本配置

configLocation

MyBatis 配置文件位置,如果您有单独的 MyBatis 配置,请将其路径配置到 configLocation 中。 MyBatis

Configuration 的具体内容请参考MyBatis 官方文档。

mapperLocations

MyBatis Mapper 所对应的 XML 文件位置,如果您在 Mapper 中有自定义方法(XML 中有自定义实现),需要进行该配置,告诉 Mapper 所对应的 XML 文件位置。

typeAliasesPackage

MyBaits 别名包扫描路径,通过该属性可以给包中的类注册别名,注册后在 Mapper 对应的 XML 文件中可以直接使用类名,而不用使用全限定的类名(即 XML 中调用的时候不用包含包名)。

2、进阶配置

本部分(Confifiguration)的配置大都为 MyBatis 原生支持的配置,这意味着您可以通过 MyBatis XML 配置文件的形 式进行配置。

mapUnderscoreToCamelCase

  • 类型: boolean
  • 默认值: true

是否开启自动驼峰命名规则(camel case)映射,即从经典数据库列名 A_COLUMN(下划线命名)到经典 Java 属性名 aColumn(驼峰命名)的类似映射。

cacheEnabled

  • 类型: boolean
  • 默认值: true

全局地开启或关闭配置文件中的所有映射器已经配置的任何缓存,默认为 true。

示例:

mybatis-plus.configuration.cache-enabled=false

3、DB 策略配置

idType

  • 类型: com.baomidou.mybatisplus.annotation.IdType
  • 默认值: ID_WORKER

全局默认主键类型,设置后,即可省略实体对象中的@TableId(type = IdType.AUTO)配置

tablePrefifix

  • 类型: String
  • 默认值: null

表名前缀,全局配置后可省略@TableName()配置。

五、条件构造器

在MP中,Wrapper接口的实现类关系如下:

工作中能用到Mybatis-plus吗?怎么用?_第4张图片

可以看到,AbstractWrapper和AbstractChainWrapper是重点实现,接下来我们重点学习AbstractWrapper以及其子类。

说明:

QueryWrapper(LambdaQueryWrapper) 和 UpdateWrapper(LambdaUpdateWrapper) 的父类 用于生成 sql的 where 条件, entity 属性也用于生成 sql 的 where 条件 注意: entity 生成的 where 条件与 使用各个 api 生成的where 条件没有任何关联行为 。

自学JavaEE快速通关路径(依次向下顺序学习即可):

Java SE基础-打好JavaSE基础才能成为开发高手
Java基础:Java入门基础视频教程,java零基础自学首选黑马程序员Java入门教程(含Java项目和Java真题)_哔哩哔哩_bilibili
Java Web-能制作中小型网站&企业管理系统
Javaweb:黑马程序员最新版JavaWeb基础教程,Java web从入门到企业实战完整版_哔哩哔哩_bilibili
MySQL数据库:黑马程序员 MySQL数据库入门到精通,从mysql安装到mysql高级、mysql优化全囊括_哔哩哔哩_bilibili
Java开发框架-Java企业级服务端开发技能
Maven:黑马程序员Maven全套教程,maven项目管理从基础到高级,Java项目开发必会管理工具maven_哔哩哔哩_bilibili
Git:黑马程序员Git全套教程,完整的git项目管理工具教程,一套精通git_哔哩哔哩_bilibili
SSM框架:黑马程序员2022最新SSM框架教程_Spring+SpringMVC+Maven高级+SpringBoot+MyBatisPlus企业实用开发技术_哔哩哔哩_bilibili
MybatisPlus:黑马程序员MybatisPlus深入浅出教程,快速上手mybatisplus_哔哩哔哩_bilibili
Spring Boot:黑马程序员SpringBoot2全套视频教程,springboot零基础到项目实战(spring boot2完整版)_哔哩哔哩_bilibili
传智健康:黑马程序员Java项目《传智健康》,超完整的企业级医疗行业项目(基于SSM+Zookeeper+Dubbo+Spring Security技术栈)_哔哩哔哩_bilibili
瑞吉外卖:黑马程序员Java项目实战《瑞吉外卖》,轻松掌握springboot + mybatis plus开发核心技术的真java实战项目_哔哩哔哩_bilibili
中间件&微服务框架-中级程序员的热门技术
Springcloud:SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式,史上最全面的springcloud微服务技术栈课程|黑马程序员Java微服务_哔哩哔哩_bilibili
Dubbo:黑马程序员Dubbo快速入门,Java分布式框架必会的dubbo教程_哔哩哔哩_bilibili
Zookeeper:黑马程序员Zookeeper视频教程,快速入门zookeeper技术_哔哩哔哩_bilibili
RabbitMQ:黑马程序员RabbitMQ全套教程,rabbitmq消息中间件到实战_哔哩哔哩_bilibili
RocketMQ:黑马程序员RocketMQ系统精讲,电商分布式消息中间件,硬核揭秘双十一_哔哩哔哩_bilibili
Docker:黑马程序员Docker容器化技术,从零学会Docker教程_哔哩哔哩_bilibili
Redis:黑马程序员Redis入门到实战教程,全面透析redis底层原理+redis分布式锁+企业解决方案+redis实战_哔哩哔哩_bilibili
MongoDB:黑马程序员MongoDB基础入门到高级进阶,一套搞定mongodb_哔哩哔哩_bilibili
搜索技术:java中级教程-ELK高级搜索,全面的讲解ElasticStack技术栈_哔哩哔哩_bilibili
项目实战-企业级项目开发,掌握行业3年开发经验
人力资源:黑马程序员Java项目SaaS移动办公完整版《iHRM 人力资源管理系统》,跨行业SaaS办公整合性解决方案_哔哩哔哩_bilibili
好客租房:黑马程序员Java项目《好客租房》,Java企业级解决方案(Spring全家桶+分布式解决方案+微信授权+爬虫解决方案等)_哔哩哔哩_bilibili
权限管理一体化解决方案:黑马程序员Java品达通用权限项目,基于SpringCloud SpringBoot 的微服务框架的权限管理解决方案_哔哩哔哩_bilibili

你可能感兴趣的:(mybatis,java,数据库)