mabatis-plus比Mybatis哪里好用?

1、Mybatis-plus的优点?

学过mybatis的小伙伴肯定知道早期的mybatis需要写很多Mapper.xml文件,这种方式导致的缺陷也很明显。

由于需求导致 Entity需要增减一个字段,那么与此同时需要修改Mapper.xml文件。导致 牵一发而动全身(总之麻烦!!)

在新版本mybatis3中虽然脱离了使用Mapper.xml文件,代替的方式是通过注解开发,把Sql语句写在了注解上。但是这种方式依然需要修改Sql语句(需要寻找注解),依然没有解决之前遗留的问题。

因此Mybatis-plus诞生了,它的出现就是为了解决这个问题,全过程中不需要写Sql代码,这样减少了开发工作量。

使用idea的spring initializer 初始化一个springboot项目。

mybatis-plus官网:https://mybatis.plus/
在mysql数据库中

新建一个mp数据库,执行下面代码,添加测试数据

#创建用户表
CREATE TABLE user (
    id BIGINT(20) PRIMARY KEY NOT NULL COMMENT '主键',
    name VARCHAR(30) DEFAULT NULL COMMENT '姓名',
    age INT(11) DEFAULT NULL COMMENT '年龄',
    email VARCHAR(50) DEFAULT NULL COMMENT '邮箱',
    manager_id BIGINT(20) DEFAULT NULL COMMENT '直属上级id',
    create_time DATETIME DEFAULT NULL COMMENT '创建时间',
    CONSTRAINT manager_fk FOREIGN KEY (manager_id)
        REFERENCES user (id)
)  ENGINE=INNODB CHARSET=UTF8;

#初始化数据:
INSERT INTO user (id, name, age, email, manager_id
	, create_time)
VALUES (1087982257332887553, '大boss', 40, 'boss@baomidou.com', NULL
		, '2019-01-11 14:20:20'),
	(1088248166370832385, '王天风', 25, 'wtf@baomidou.com', 1087982257332887553
		, '2019-02-05 11:12:22'),
	(1088250446457389058, '李艺伟', 28, 'lyw@baomidou.com', 1088248166370832385
		, '2019-02-14 08:31:16'),
	(1094590409767661570, '张雨琪', 31, 'zjq@baomidou.com', 1088248166370832385
		, '2019-01-14 09:15:15'),
	(1094592041087729666, '刘红雨', 32, 'lhm@baomidou.com', 1088248166370832385
		, '2019-01-14 09:48:16');

在 resources下新建一个文件application.yml 添加数据源连接配置。

注意修改 用户名和密码

spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/mp?useSSL=false&serverTimezone=GMT%2B8
    username: root
    password: 123456
mybatis-plus:
  configuration:
    map-underscore-to-camel-case: true  # 开启驼峰命名

实例代码

entity层:使用了lombok注解,动态生成get、set、toString方法。需要添加lombok依赖

<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <optional>true</optional>
</dependency>

User实例类:

package com.example.demo.entity;

import lombok.Data;
import java.io.Serializable;
import java.time.LocalDateTime;

@Data
public class User implements Serializable {
    private Long id;//主键

    private String name;// 姓名

    private int age;// 年龄

    private String email;// 邮箱

    private Long managerId;// 上级领导

    private LocalDateTime createTime;// 创建时间
}

dao层:使用到了mybatis-plus

首先添加maven依赖:springboot项目用下面这个依赖!

<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>3.2.0</version>
</dependency>

注意这里的依赖!我之前犯过错误!因为使用的是springboot项目所以用上面这个依赖。如果是spring项目则用下面的依赖

<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus</artifactId>
    <version>3.2.0</version>
</dependency>

然后就可以使用BaseMapper <entity范型>

UserMapper接口类:

package com.example.demo.dao;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Component;
import com.example.demo.entity.User;

@Mapper
@Component
public interface UserMapper extends BaseMapper<User> {
}

启动类上还需要加上 @MapperScan(“UserMapper接口所在的包”)

例如:@MapperScan(“top.yumbo.dao”) 这样启动的时候就不会因为注入的时候导致报错

测试:在单元测试中添加对应代码

如下,如果出现下面一样的报红没有关系,不影响代码执行。想要消去则可以将上面的UserMapper上加一个@Component注解即可(来自import org.springframework.stereotype.Component;)

在执行测试方法前你还需要添加一个依赖就是jdbc依赖

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <scope>runtime</scope>
</dependency>

总结上面的依赖:有lombok、mybatis-plus-boot-starter、mysql-connector-java三个依赖,其它依赖通过spring initializer直接生成的springboot依赖和单元测试依赖

执行Test方法

如下得到结果

是否发现我没有使用sql代码就查询到了结果呢(当然在过程中还是通过生成sql进行查询的)

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值