写点什么

【MyBatis 2】MyBatis-Plus,java 多线程常见面试题

用户头像
极客good
关注
发布于: 刚刚

支持多达 4 种主键策略(内含分布式唯一 ID 生成器),可自由配置,完美解决主键问题。


  • AUTO 数据库 ID 自增


  • INPUT 用户输入 ID


  • ID_WORKER 全局唯一 ID,Long 类型的主键


  • ID_WORKER_STR 字符串全局唯一 ID


  • UUID 全局唯一 ID,UUID 类型的主键


  • NONE 该类型为未设置主键类型



主键生成的几种方式:



1、数据库自增长



2、UUID



3、Redis 生成 id


【一线大厂Java面试题解析+核心总结学习笔记+最新架构讲解视频+实战项目源码讲义】
浏览器打开:qq.cn.hn/FTf 免费领取
复制代码

7、支持热加载

mapper 对应的 xml 支持热加载,对于简单的 CRUD 操作,甚至可以无 xml 启动。


注意:3.0.6版本上移除了该功能,不过最新快照版已加回来并打上废弃标识,预计3.1.0版本上完全移除

8、支持 Active Record

Active Record(简称 AR),是一种领域模型模式,特点是一个模型类对应关系型数据库中的一个表,而模型类的一个实例对应表中的一行记录。


MyBatis-Plus 对 AR 的支持,仅需要继承 Model 类并实现主键指定方法即可。

9、支持代码生成

采用代码或者 Maven 插件可快速生成 mapper、model、service、controller 层代码,支持模板引擎,代码生成器类只需修改表名,并输入项目包结构即可,轻松惬意。


10、支持自定义全局通用操作

支持全局通用方法注入

11、支持关键词自动转义

支持数据库关键词自动转移,还可以自定义关键词

12、内置分页插件

基于 Mybatis 物理分页,开发者无需关心具体操作,配置好插件之后,写分页等同于写基本 List 查询。


分页?初级程序员的噩梦,现在?so easy!

13、内置性能分析插件

可输出 sql 语句及执行时间,建议开发测试阶段启用。

14、内置全局拦截插件

提供全表 delete、update 操作,智能分析阻断,预防误操作。


三、BaseMapper




在使用 MyBatis-Plus 中我们经常用到 BaseMapper 接口,我就是因为 BaseMapper 才写的这篇博客,真的是菜鸡的很。


BaseMapper 是利用 MyBatis 接口编程的实现机制,其默认提供了一系列的增删改查的基础方法,并且开发人员对于这些基础操作不需要写 SQL 进行处理操作(Mybatis 提供的机制就是需要开发人员在 mapper.xml 中提供 sql 语句),那样我们可以猜测肯定是 Mybatis-Plus 完成了 BaseMapper 接口提供的方法的 SQL 语句的生成操作。


BaseMapper 类:


package com.baomidou.mybatisplus.core.mapper;


import com.baomidou.mybatisplus.core.conditions.Wrapper;


import com.baomidou.mybatisplus.core.metadata.IPage;


import java.io.Serializable;


import java.util.Collection;


import java.util.List;


import java.util.Map;


import org.apache.ibatis.annotations.Param;


public interface BaseMapper<T> {


int insert(T var1);


int deleteById(Serializable var1);


int deleteByMap(@Param("cm") Map<String, Object> var1);


int delete(@Param("ew") Wrapper<T> var1);


int deleteBatchIds(@Param("coll") Collection<? extends Serializable> var1);


int updateById(@Param("et") T var1);

用户头像

极客good

关注

还未添加个人签名 2021.03.18 加入

还未添加个人简介

评论

发布
暂无评论
【MyBatis 2】MyBatis-Plus,java多线程常见面试题