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, '[email protected]', NULL
		, '2019-01-11 14:20:20'),
	(1088248166370832385, '王天风', 25, '[email protected]', 1087982257332887553
		, '2019-02-05 11:12:22'),
	(1088250446457389058, '李艺伟', 28, '[email protected]', 1088248166370832385
		, '2019-02-14 08:31:16'),
	(1094590409767661570, '张雨琪', 31, '[email protected]', 1088248166370832385
		, '2019-01-14 09:15:15'),
	(1094592041087729666, '刘红雨', 32, '[email protected]', 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

 

实例代码

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


    org.projectlombok
    lombok
    true

User实例类: 

package com.example.demo.entity;

import lombok.Data;

import java.time.LocalDateTime;

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

    private String name;// 姓名

    private int age;// 年龄

    private String email;// 邮箱

    private Long managerId;// 上级领导

    private LocalDateTime createTime;// 创建时间
}

dao层:使用到了mybatis-plus

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


    com.baomidou
    mybatis-plus-boot-starter
    3.2.0

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


    com.baomidou
    mybatis-plus
    3.2.0

然后就可以使用BaseMapper  

UserMapper接口类:

package com.example.demo.dao;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.example.demo.entity.User;

public interface UserMapper extends BaseMapper {
}

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

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

mabatis-plus比Mybatis哪里好用?_第1张图片

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


    mysql
    mysql-connector-java
    runtime

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

执行Test方法

如下得到结果

mabatis-plus比Mybatis哪里好用?_第2张图片

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

你可能感兴趣的:(SpringBoot)