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

发布于 2019-09-04 | 作者: SimpleWu | 来源: 博客园 | 转载于: 博客园

官方网址:https://mp.baomidou.com

什么是MyBatis-Plus?

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

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

特性

框架结构

快速入门

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

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项目导入依赖: 

<!--mybatis-plus依赖-->
<dependency>
   <groupId>com.baomidou</groupId>
   <artifactId>mybatis-plus-boot-starter</artifactId>
   <version>3.0.6</version>
</dependency>
<!--简化getset。。方法-->
<dependency>
   <groupId>org.projectlombok</groupId>
   <artifactId>lombok</artifactId>
   <optional>true</optional>
</dependency>
<!--数据库依赖-->
<dependency>
   <groupId>mysql</groupId>
   <artifactId>mysql-connector-java</artifactId>
</dependency>

编辑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<User> :指定类型
 * @author SimpleWu
 */
public interface UserMappers extends BaseMapper<User>{
 
}

启动类添加扫描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)
@SpringBootTest
public class MybatisPlusApplicationTests {
 @Autowired
 private UserMappers mappers;
 
 @Test
 public void selectList() {
        List<User> list = mappers.selectList(null);
        list.forEach(System.out::println);
    }
}

分页查询: 

@Test
public void selectListPage() {
    //开始页数 每页总数
    IPage<User> 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<User> {
}

实现类:

public class UserServiceImpl extends ServiceImpl<UserMappers, User> implements UserService {
}

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

总结:

MybatisPlus致力于优化,简化!