乐趣区

mybatis增强工具MyBatis-plus

如果你正在用 mybatis, 那 MyBatis-plus 你不能错过, 配合使用可极大简化开发、提高效率!
简介
MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。
愿景
我们的愿景是成为 MyBatis 最好的搭档,就像 魂斗罗 中的 1P、2P,基友搭配,效率翻倍。

特性

无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑

损耗小:启动即会自动注入基本 CURD,性能基本无损耗,直接面向对象操作

强大的 CRUD 操作:内置通用 Mapper、通用 Service,仅仅通过少量配置即可实现单表大部分 CRUD 操作,更有强大的条件构造器,满足各类使用需求

支持 Lambda 形式调用:通过 Lambda 表达式,方便的编写各类查询条件,无需再担心字段写错

支持多种数据库:支持 MySQL、MariaDB、Oracle、DB2、H2、HSQL、SQLite、Postgre、SQLServer2005、SQLServer 等多种数据库

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

支持 XML 热加载:Mapper 对应的 XML 支持热加载,对于简单的 CRUD 操作,甚至可以无 XML 启动

支持 ActiveRecord 模式:支持 ActiveRecord 形式调用,实体类只需继承 Model 类即可进行强大的 CRUD 操作

支持自定义全局通用操作:支持全局通用方法注入(Write once, use anywhere)

支持关键词自动转义:支持数据库关键词(order、key……)自动转义,还可自定义关键词

内置代码生成器:采用代码或者 Maven 插件可快速生成 Mapper、Model、Service、Controller 层代码,支持模板引擎,更有超多自定义配置等您来使用

内置分页插件:基于 MyBatis 物理分页,开发者无需关心具体操作,配置好插件之后,写分页等同于普通 List 查询

内置性能分析插件:可输出 Sql 语句以及其执行时间,建议开发测试时启用该功能,能快速揪出慢查询

内置全局拦截插件:提供全表 delete、update 操作智能分析阻断,也可自定义拦截规则,预防误操作

内置 Sql 注入剥离器:支持 Sql 注入剥离,有效预防 Sql 注入攻击

其中两大点可极大提高开发效率:

代码生成器:采用代码或者 Maven 插件可快速生成 Dao、Model、Service、Controller 层,Mapper.xml 等代码, 一键生成, 无需重复编码

强大的 CRUD 操作: 内置通用 Mapper、通用 Service, 无需编写其他代码, 即用期做 CRUD 操作, 以及自带分页插件, 配置一下即可使用

以下为 CRUD 操作例子
public interface FileTypeService extends IService<FileType> {

}

// 注意:FileTypeService 中, 未写任何代码
// 继承了 IService 通用 Service

public void addTest(){
// 新增
FileType fileType = new FileType();
fileType.setName(“ 测试 4 ”);
fileTypeService.insert(fileType);
}

public void deleteTest(){
// 根据 id 删除
fileTypeService.deleteById(1);
// 自定义条件删除
fileTypeService.delete(new EntityWrapper<FileType>().eq(“name”,” 测试 3 ″));
}

public void getOneTest(){
// 查询单个实体 条件为 name 为测试 3
fileTypeService.selectOne(new EntityWrapper<FileType>().eq(“name”,” 测试 3 ″));
}

public void listTest(){
// 查询列表 只查 ”name” 列
fileTypeService.selectList(new EntityWrapper<FileType>().setSqlSelect(“name”));
}

public void selectPage(){
// 分页查询
// 参数 Map
Map<String,Object> param = new HashMap<>();
// 当前页数
param.put(“page”,1);
// 每页显示
param.put(“limit”,20);
// 根据 id 字段倒序排序
param.put(“field”,”id”);
param.put(“order”,”desc”);

// 分页查询
Page<FileType> page = fileTypeService.selectPage(new MapQuery(param).getPage());
}
一行代码即可实现 CRUD, 单仅支持单表查询, 如果需要关联多个表, 还是得用以前的方法, 写 sql 实现了
支持 SpringMvc 和 SpringBoot 集成, 具体使用请移步官网哈~

 THANDKS
End –
一个立志成大腿而每天努力奋斗的年轻人
伴学习伴成长,成长之路你并不孤单!

退出移动版