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对象
1.5.3 实现接口的继承
1.5.4 修改YML映射文件
1.5.5 编辑YML文件实现sql打印操作
1.5.6 测试
1.5.7 MP实现原理
1.对象与表如何映射
可以利用自定义的注解的方式实现映射. @TableName 不能省略 @TableField(“name”)如果名称一致可以省略
1.对象的名称与表的名称 一一映射。
2.对象中的属性与表中的字段一一映射。
2 利用接口封装公共的CURD方法
MP主要的目的是实现单表的CRUD操作.所以将公共的方法写到同一个接口中 BaseMapper以后用户使用时,只需要继承即可。
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介绍
2.web项目创建
2.1 创建web项目
2.1.1 创建maven项目
2.1.2 编辑pom.xml文件
2.1.3 编辑JSP页面
2.1.4 编辑POJO
2.1.5 编辑YML配置文件
2.1.6 解决页面访问404问题
2.1.7 编辑UserController
2.1.8 编辑UserService
2.1.8 页面效果展现
2.2 异步方式调用
2.2.1 为什么ajax可以实现异步???
特点:局部刷新:异步调用(加载)
调用原理说明:
1.用户将请求发给ajax引擎进行处理,之后等待引擎返回数据
2.ajax引擎接受到用户的请求之后,代替用户访问后端服务器
3.后端服务器接受请求之后,执行业务处理,并且将返回值返回
4.ajax引擎收到返回结果之后,要在第一时间通知给用户. 利用回调函数将数据传给客户端.ajax调用成功.
2.3 ajax获取用户信息
2.3.1 准备ajax页面
创建一个jsp文件 名为:ajax.jsp
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。