1. MyBatis-Plus(简称MP)是一个 MyBatis 的增强工具,在 Mybatis 的基础上只做增强不做改变,为简化开发、提高效率而生。MP会内置集成部分SQL方法,可以直接使用,而不用一个SQL需求对应一个Mapper下的一个SQL条目。实体类和Dao层,Service和ServiceImpl层 开启AR后,可以使用MP的内置方法,减少了SQL代码的重复书写。底层实现是Hibernate框架结构。用类和方法来实现SQL功能,由于类和方法的局限性,复杂SQL需求,还是需求原始的SQL来完成 2. mybatis 是一个优秀的持久性框架,它简化了 jdbc 的代码,可以使用简单的 xml 或注解来配置来映射; plus加强版的意思,对 mybatis 继续简化。 mybatis-plus 是 mybatis 的增强工具,它在 mybatis 的基础上又添加了许多的功能,在 mybatis-plus 上既可以使用自身特有的功能,还可以使用 mybatis 的原生功能;所以说mybatis-plus 是为简化开发,提高效率而生。 MyBatis : SQL语句封装在配置文件中,便于统一管理与维护;提供了动态SQL标签,支持编写动态SQL。以及提供映射标签,支持对象与数据库的ORM字段关系映射。 访问数据库的 sql 语句存放于 mapper (或Dao) 包下的 xml 配置文件中。 Mybatis Plus:
内置通用 Mapper、通用 Service,不需要再写 xml 了,仅仅通过少量配置即可实现单表大部分 CRUD 操作,更有强大的条件构造器,满足各类使用需求 。 内置 Sql 注入剥离器,有效预防Sql注入攻击 。 3. 什么是AR模式:简单来说就是通过实体类对象,直接进行表的增删改查操作。 实现AR模式在MP中有两个基本要求:
4. Dao层开启AR 继承特殊类BaseMapper<T> BaseMapper隶属于:com.baomidou.mybatisplus.core.mapper.BaseMapper T泛型:当前的实体类 由于Model类的存在,那么就可以获得MP封装了基于当前表(泛型)的基础方法 测试实体类的内置AR方法 例子:根据ID查询 例子:插入当前对象
测试Dao接口层的内置AR方法 例子:根据ID更新 例子:查询昵称为“用户”的所有条目 QueryWrapper 被称为条件构造器
如果MyBatis和MyBatis-plus方法重复,MyBatis方法优先 MyBatis避开MP的关键方法select, insert,update,delete等 5. ①Service层开启AR(同时开启ServiceImpl的AR) ClientService继承IService类 IService隶属于:com.baomidou.mybatisplus.extension.service.IService 泛型Product,对应一个表
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 saveOrUpdateBatch 根据主键,批量插入或更改
|
AR功能 实体类和Dao层开启AR的方式?Service层和ServiceImpl层开AR方式
最新推荐文章于 2024-08-23 15:54:50 发布