AR功能 实体类和Dao层开启AR的方式?Service层和ServiceImpl层开AR方式

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中有两个基本要求:

  1. 实体类继承Model类

  1. 必须存在原始的Mapper接口并继承BaseMapper

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,对应一个表

  1. 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

saveOrUpdateBatch 根据主键,批量插入或更改

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值