博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
2018开源中国最受欢迎的中国软件MyBatis-Plus
阅读量:6793 次
发布时间:2019-06-26

本文共 3584 字,大约阅读时间需要 11 分钟。

2018开源中国最受欢迎的中国软件MyBatis-Plus

官方网址:https://mp.baomidou.com 中国软件,中文文档

什么是MyBatis-Plus?

进入官方第一句话:为简化开发而生 ;

  • 只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑。
  • 只需简单配置,即可快速进行 CRUD 操作,从而节省大量时间。
  • 丰富功能:热加载、代码生成、分页、性能分析等功能一应俱全。

我愿景是成为 MyBatis 最好的搭档,就像  中的 1P、2P,基友搭配,效率翻倍。

relationship-with-mybatis.png

特性

  • 无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑
  • 损耗小:启动即会自动注入基本 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 注入攻击

框架结构

mybatis-plus-framework.jpg

快速入门

全新的 MyBatis-Plus 3.0 版本基于 JDK8,提供了 lambda 形式的调用,所以安装集成 MP3.0 要求如下:

  • JDK 8+
  • Maven or Gradle

SQL:

#创建数据表CREATE TABLE tb_user(    id INT PRIMARY KEY AUTO_INCREMENT COMMENT '主键ID',    NAME VARCHAR(30) NULL DEFAULT NULL COMMENT '姓名',    age INT(11) NULL DEFAULT NULL COMMENT '年龄',    email VARCHAR(50) NULL DEFAULT NULL COMMENT '邮箱');#插入测试数据INSERT INTO tb_user (`name`, age, email) VALUES('Jone', 18, 'test1@baomidou.com'),('Jack', 20, 'test2@baomidou.com'),('Tom', 28, 'test3@baomidou.com'),('Sandy', 21, 'test4@baomidou.com'),('Billie', 24, 'test5@baomidou.com');

创建SpringBoot项目导入依赖:

com.baomidou
mybatis-plus-boot-starter
3.0.6
org.projectlombok
lombok
true
mysql
mysql-connector-java

编辑yml配置:

spring:  datasource:    driver-class-name: com.mysql.jdbc.Driver    url: jdbc:mysql://localhost:3306/hi?characterEncoding=utf8&useSSL=false&serverTimezone=UTC&rewriteBatchedStatements=true    username: root    password: root

添加Mapper接口:

/** * Mapper接口实现后会有大量已经写好的方法可以直接调用 * BaseMapper
:指定类型 * @author SimpleWu */public interface UserMappers extends BaseMapper
{ }

启动类添加扫描Mapper接口包位置:

@SpringBootApplication@MapperScan("com.simple.mybatis.plus.mappers")public class MybatisPlusApplication {    public static void main(String[] args) {        SpringApplication.run(MybatisPlusApplication.class, args);    }}

测试类进行测试:

@RunWith(SpringRunner.class)@SpringBootTestpublic class MybatisPlusApplicationTests {        @Autowired    private UserMappers mappers;        @Test    public void selectList() {        List
list = mappers.selectList(null); list.forEach(System.out::println); }}

分页查询:

@Testpublic void selectListPage() {    //开始页数 每页总数    IPage
page = new Page<>(2, 5); page = mappers.selectPage(page, null); page.getRecords().forEach(System.out::println);}

当使用Mybatis-plus时Mapper接口只需要继承BaseMapper<?>指定类型,在Mapper接口中就会发现有许多已经被写好的方法可以直接调用。方法描述请参考源码,国人开发,中文注释。

并且MybatisPlus连Service都已经帮我们写好了:

首先定义个接口:

public interface UserService extends IService
{}

实现类:

public class UserServiceImpl extends ServiceImpl
implements UserService {}

我们可以直接注入UserService里面的方法都是能用的。

总结:

MybatisPlus致力于优化,简化!

转载于:https://www.cnblogs.com/SimpleWu/p/10169918.html

你可能感兴趣的文章
Tomcat最新本地提权漏洞
查看>>
OURS-IOTV2 物联网套件 各模块ID
查看>>
c语言冒泡排序
查看>>
公共资源情报(OSINT)工具Automater
查看>>
新版本eclipse导入旧版本插件
查看>>
Linux系统之程序包管理器-RPM
查看>>
Javascript中String
查看>>
清除WebLogic缓存
查看>>
11g rman 配置catalog
查看>>
时间戳格式化
查看>>
我的友情链接
查看>>
Tablacus Script Control 64
查看>>
Vim for C Programmers
查看>>
第六章 嫉妒、欺骗、背叛
查看>>
【未解决】js对象字面量、eval()方法
查看>>
安装php加速器Zend guard loader出现无法加载,没有找到php5.dll 的错误
查看>>
关于OpenCV 3.1的搭建使用经验
查看>>
唯品会的订单分库分表实践总结以及关键步骤
查看>>
solaris 开启ftp服务 通过xftp登陆ftp服务器
查看>>
explorer.exe
查看>>