Mybatis-Plus 是一款 Mybatis 动态 SQL 自动注入 Mybatis 增删改查 CRUD 操作中间件,减少你的开发周期优化动态维护 XML 实体字段,无入侵全方位 ORM 辅助层让您拥有更多时间陪家人。
代号:超级棒棒糖,一个字甜,二个字很甜,三个字超级甜!!!
Mybatis-Plus 3.0-RELEASE 震撼来袭,历经 1 年余苞米豆组织成员不懈努力 3.0 正式版终于和大家见面,2016 年发布至今荣获 GVP 等荣誉,获得一批粉丝的支持各种 脚手架优秀案例 百花齐放。watch 1k+ , star 3k+ , fork 1k+ , commit 2k+ , contribution 59
MP 3 架构图如下:
Sample 示例 临时 3.0 文档
升级日志 , 3.0 特性简介:
1、支持主流数据库,全覆盖默认 CRUD
Mysql,MariaDB,Oracle,DB2,H2,HSql,Sqlite,PostgreSQL,SqlServer,DaMeng
2、强大的条件构造器,消除硬编码
// SQL: SELECT name, age FROM user WHERE sex=1 AND (age=3 OR age =5) AND name LIKE ‘%MP3%’
new QueryWrapper(可传实体条件,字符串类型默认模糊查询)
.lambda().select(User::getName, User::getAge)
.eq(User::getSex, 1)
.and(i -> i.eq(User::getAge, 3).or().eq(User::getAge, 5))
.like(User::getName, “MP3”);
3、无限制的分页设计,灵活的 Page 模型
// 分页 Mapper 层直接返回 IPage 接口,让分页模型完全自定义
IPage page = baseMapper.selectPage(page, …);
4、通用 Mapper 通用 Service 通用 Api 层
// 通用 API 控制层
@GetMapping(“/api”)
public R test(String test) {
ApiAssert.notNull(ErrorCode.TEST, test);
return success(test);
}
5、代码生成器一行撸到底,各种姿势都支持
// 代码生成器
new AutoGenerator().setGlobalConfig(
// 全局配置
).setDataSource(
// 数据源配置
).setStrategy(
// 策略配置
).setPackageInfo(
// 包配置
).setCfg(
// 注入自定义配置
).setTemplate(
// 模板配置
).execute();
6、ActiveRecord 模式,不在羡慕动态语言 (PHP、Ruby 等)
// 初始化 成功标识
boolean result = false;
// 初始化 User
User user = new User();
// 保存 User
user.setName(“Tom”);
result = user.insert();
// 更新 User
user.setAge(18);
result = user.updateById();
// 查询 User
User exampleUser = user.selectById();
// 查询姓名为‘张三’的所有用户记录
List userList1 = user.selectList(
new EntityWrapper().eq(“name”, “ 张三 ”)
);
// 删除 User
result = t2.deleteById();
7、开发辅助插件 OR 工具
分页插件,执行分析插件,性能分析插件,乐观锁插件,XML 热加载,公共字段自动填充,逻辑删除,读写分离 & 多数据源,多租户 SQL 解析器,通用枚举自动注入
8、IDEA 辅助开发插件 MybatisX