1

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的信息,所以需要将原来的包删除。

<!--spring整合mybatis-plus -->
    <dependency>
        <groupId>com.baomidou</groupId>
        <artifactId>mybatis-plus-boot-starter</artifactId>
        <version>3.2.0</version>
    </dependency>
1.5.2 编辑POJO对象

image.png

1.5.3 实现接口的继承

image.png

1.5.4 修改YML映射文件

image.png

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

image.png

1.5.6 测试

image.png

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

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

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

MP主要的目的是实现单表的CRUD操作.所以将公共的方法写到同一个接口中 BaseMapper以后用户使用时,只需要继承即可。
image.png

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介绍

image.png

2.web项目创建

2.1 创建web项目

2.1.1 创建maven项目

image.png

2.1.2 编辑pom.xml文件

image.png

2.1.3 编辑JSP页面

image.png

2.1.4 编辑POJO

image.png

2.1.5 编辑YML配置文件

image.png

2.1.6 解决页面访问404问题

image.png
image.png

2.1.7 编辑UserController

image.png

2.1.8 编辑UserService

image.png

2.1.8 页面效果展现

image.png

2.2 异步方式调用

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

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

2.3 ajax获取用户信息

2.3.1 准备ajax页面

创建一个jsp文件 名为:ajax.jsp
image.png

2.3.2 编辑页面JS内容

image.png

2.3.3 编辑UserController

image.png

2.3.4 页面效果呈现

image.png


learner
4 声望0 粉丝