SpringBoot MyBatis-Plus
|
一.实验目的 |
2. 对比MyBatis-Plus框架和MyBatis框架特性? 3. AR功能的理解? 4. 实体类和Dao层开启AR的方式? 5. Service层和ServiceImpl层开AR方式? 6. 项目代码 |
|
二. 实验内容 |
|
1.MyBatis-Plus MyBatis-Plus(简称MP)是一个 MyBatis 的增强工具,在 Mybatis 的基础上只做增强不做改变,为简化开发、提高效率而生。 MP会内置集成部分SQL方法,可以直接使用,而不用一个SQL需求对应一个Mapper下的一个SQL条目。
特性:无侵入、损耗小、强大的CRUD操作,支持Lambda形式调用、支持主键自动生成,支持ActiveRecord模式、支持自定义全局通用操作、内置代码生成器、内置分页插件、分页插件支持多种数据库、内置性能分析插件、内置全局拦截插件。
二、MyBatis-plus的一些注解 1、@TableName 表名注解
注解在类上,指定类和数据库表的映射关系,实体类的类名和数据库表名相同时,可以不指定该注解
2、@TableId 主键注解
注解在实体类的某一字段上,表示这个字段对应数据库表的主键,当主键名为ID时,无须使用该注解显式指定主键,mp会自动关联,若类的字段名和表的列名不一致,可用value属性指定表的列名
3、@TavleField 字段注解(非主键)
注解在某一字段上,指定java实体类的字段和数据库表的列的映射关系,应用于 排除非表字段(若实体类中某个字段,不对应表中的任何列,它只是用于保存一些额外的,或组装后的数据)、字段验证策略(通过insertStrategy、updateStrategy、whereStrategy属性进行配置,可以控制在实体对象进行插入、更新、或作为WHERE条件时,对象的字段要如何组装到sql语句中)、字段填充策略(通过fill属性指定,字段为空时会进行自动填充)
4、@Version 乐观锁注解,标记@Version在字段上
5、@EnumValue 通枚举类注解(注解在枚举字段上)
6、@TableLogic 表字段逻辑处理注解(逻辑删除)
7、@KeySequence 序列主键策略 oracle
8、@SqlParser 租户注解,支持method上以及mapper接口上
9、@InterceptorIgnore插件过滤规则 2.MyBatis-Plus概述 需要基础:学习过Spring、SpringMVC、Mybatis 为什么要学习它呢?MyBatisPlus可以节省我们大量的工作时间,所有的CRUD代码都可以自动化完成! JPA、tk-mapper、MyBatisPlus 1.简介 是什么? Mybatis本来就是简化JDBC操作的! 官网:MyBatis-Plus MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。
特性
框架结构
4.Dao层开启AR 继承特殊类BaseMapper<T> BaseMapper隶属于:com.baomidou.mybatisplus.core.mapper.BaseMapper 5.Service层开启AR(同时开启ServiceImpl的AR)
ClientService继承IService类 IService隶属于:com.baomidou.mybatisplus.extension.service.IService 泛型Product,对应一个表
4. ServiceImpl开启AR
ClientServiceImpl正常实现ClientService接口 继承特殊类ServiceImpl<T1,T2> ServiceImpl隶属于com.baomidou.mybatisplus.extension.service.impl.ServiceImpl T1: 继承了MP组件的Dao层 T2:实体类,也是为了引向到一个表 由于T1的存在,因此无需再自动装载dao层
ServiceImpl修改
ServiceImpl的AR功能,是依赖Dao的AR功能来实现
默认会寻找当前数据源下,和实体类名相同的表 实体类名和表名不相同,在实体类上添加一个注释
条件构造器为null,全查效果
例子 批量插入: 设置主键自增
saveBatch 6. |

浙公网安备 33010602011771号