推荐一款 MyBatis 开发神器 为简化而生
今天栈长给使用 MyBatis 的同学推荐一款神器:MyBatis-Plus,简称 MP,它是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。
愿景就是成为 MyBatis 最好的搭档,就像魂斗罗中的 1P、2P,基友搭配,效率翻倍。
官网地址:
https://mybatis.plus/Github地址:
https://github.com/baomidou/mybatis-plus现在已经超过 5K+ Star 了。。
特性
无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑损耗小:启动即会自动注入基本 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 注入攻击框架结构
快速开始
1、新增依赖
dependency>
groupId>com.baomidougroupId>
artifactId>mybatis-plus-boot-starterartifactId>
version>3.1.1version>
dependency>
2、继承通用界面
public interface UserMapper extends BaseMapper {
}
3、查询
List userList = userMapper.selectList(
new QueryWrapper()
.lambda()
.ge(User::getAge, 18)
);
MyBatis-Plus将会生成以下查询SQL:
SELECT * FROM user WHERE age >= 18
这只是一个简单的示例,大家喜欢的可以去研究下,现在有用到的也可以留言分享下心得。