Mybatis-Plus的详解

1.MybatisPlus

1.1 MP 介绍

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

1.2 特性

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

1.3 ORM思想

1.3.1 业务场景

eg:一个开发了30年的程序员,业务相当熟练,但是为了完成的业务也需要写特别简单的SQL语句。
需求:能否有效的提高开发的效率

1.3.2 ORM介绍

对象关系映射(英语:Object Relational Mapping,简称ORM,或O/RM,或O/R mapping),是一种程序设计技术,用于实现面向对象编程语言里不同类型系统的数据之间的转换。从效果上说,它其实是创建了一个可在编程语言里使用的“虚拟对象数据库”。如今已有很多免费和付费的ORM产品,而有些程序员更倾向于创建自己的ORM工具。

  • 知识铺垫:
    Sql语句面向过程的语言,
    sql:select * from user ResultSet结果集~~~User对象 需要自己手动的封装,开发的效率低。
    ORM方式:以对象的方法操作数据库,可以实现结果集与对象的自动映射,不需要自己手写

1.4 MybatisPlus工作原理说明

1.对象与那张表要完成映射

  • 可以自定义注解进行表示

    2.对象的属性与表中的字段如何一 一对应

  • 起名时应该写成一样的,如果不一样利用特定的主角指定

    3.工具方法如何简化

  • MP动态的生成CRUD操作的接口,只要其他的Mapper接口继承

    4.对象如何转化SQL语句

  • 利用对象中的属性及属性的值动态拼接即可

1.5 MP集体实现

1.5.1 导入jar包

说明:MybatisPlus包已经包含Mybatis的信息,所以需要将原来的包删除。


    
        com.baomidou
        mybatis-plus-boot-starter
        3.2.0
    
1.5.2 编辑POJO对象

Mybatis-Plus的详解_第1张图片

1.5.3 实现接口的继承

Mybatis-Plus的详解_第2张图片

1.5.4 修改YML映射文件

Mybatis-Plus的详解_第3张图片

1.5.5 编辑YML文件实现sql打印操作

Mybatis-Plus的详解_第4张图片

1.5.6 测试

Mybatis-Plus的详解_第5张图片

1.5.7 MP实现原理
1.对象与表如何映射

可以利用自定义的注解的方式实现映射. @TableName 不能省略 @TableField(“name”)如果名称一致可以省略
1.对象的名称与表的名称 一一映射。
2.对象中的属性与表中的字段一一映射。

2 利用接口封装公共的CURD方法

MP主要的目的是实现单表的CRUD操作.所以将公共的方法写到同一个接口中 BaseMapper以后用户使用时,只需要继承即可。
Mybatis-Plus的详解_第6张图片

3 需要将对象动态转化为SQL

要求:以对象的方式操作数据库. 需要方法动态转化为SQL
userMapper.insert(user对象)
Sql: insert into 表名(字段名称1,字段名称2....) values (属性值1,属性值2......)
personMapper.insert(person对象)
Sql: insert into 表名(字段名称1,字段名称2....) values (属性值1,属性值2......)

底层实现时需要动态的拼接Sql即可.
表名: @TableName注解动态获取
字段名称: @TableField(“name”) 获取
属性值: 动态利用get方法取值即可.

MP将上述的sql结构进行拼接最终形成可执行的Sql.之后利用Mybatis执行sql操作.之后再次封装.

1.6 MP API介绍

Mybatis-Plus的详解_第7张图片

2.web项目创建

2.1 创建web项目

2.1.1 创建maven项目

Mybatis-Plus的详解_第8张图片

2.1.2 编辑pom.xml文件

Mybatis-Plus的详解_第9张图片

2.1.3 编辑JSP页面

Mybatis-Plus的详解_第10张图片

2.1.4 编辑POJO

Mybatis-Plus的详解_第11张图片

2.1.5 编辑YML配置文件

Mybatis-Plus的详解_第12张图片

2.1.6 解决页面访问404问题

Mybatis-Plus的详解_第13张图片

2.1.7 编辑UserController

Mybatis-Plus的详解_第14张图片

2.1.8 编辑UserService

Mybatis-Plus的详解_第15张图片

2.1.8 页面效果展现

Mybatis-Plus的详解_第16张图片

2.2 异步方式调用

2.2.1 为什么ajax可以实现异步???

特点:局部刷新:异步调用(加载)
调用原理说明:
1.用户将请求发给ajax引擎进行处理,之后等待引擎返回数据
2.ajax引擎接受到用户的请求之后,代替用户访问后端服务器
3.后端服务器接受请求之后,执行业务处理,并且将返回值返回
4.ajax引擎收到返回结果之后,要在第一时间通知给用户. 利用回调函数将数据传给客户端.ajax调用成功.
Mybatis-Plus的详解_第17张图片

2.3 ajax获取用户信息

2.3.1 准备ajax页面

创建一个jsp文件 名为:ajax.jsp
Mybatis-Plus的详解_第18张图片

2.3.2 编辑页面JS内容

Mybatis-Plus的详解_第19张图片

2.3.3 编辑UserController

Mybatis-Plus的详解_第20张图片

2.3.4 页面效果呈现

Mybatis-Plus的详解_第21张图片

你可能感兴趣的