Mybatis-Plus初体验,从此钟情。

Mybatis-Plus初体验,从此钟情。_第1张图片
学校就像女神一样,你永远猜不透她什么时候做什么。
女神(学校):“马上开学,出去的赶紧回来,不然报道不准时,给你处分”。
我:“我天,处分???? 回去回去,从深圳屁颠屁颠回到老家”。
女神:“那个哈,开学一定要等通知,等通知,不能擅自返校,经研究第一批6月20返校”
我:Mybatis-Plus初体验,从此钟情。_第2张图片
女神又让我在家闲了快1个月,今天整了个支付的项目,用到了Mybatis-Plus
为什么会有那么好使的东西呢。爱了爱了,那可必须记录爱的初体验啊。
一:简单介绍Mybatis-Plus
二:快速入门

简单介绍:

MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发 提 高效率而生。该框架由baomidou(苞米豆)组织开发并且开源的
官网Mybatis-Plus初体验,从此钟情。_第3张图片

整体架构图:
Mybatis-Plus初体验,从此钟情。_第4张图片执行流程:
(1)扫描注解Entity,反射提取注解信息如:表名称 字段名称等信息。
(2)分析注解信息并基于com.baomidou.mybatisplus.core.enums的SQL模板生成基本 CRUD SQL。
(3)最后将这些SQL注入到Mybatis环境中。 因此Mybatis plus无需编写CRUD SQL语句,只需继承BaseMapper,魔术般的拥有了CRUD功能(通用CRUD)。

Mybatis-Plus初体验

本人环境:JDK 8 Maven 3.3.9 IDEA 2019.2 MySQL5.7
数据库准备:

-- ----------------------------
-- Table structure for `tb_user`
-- ----------------------------
DROP TABLE IF EXISTS `tb_user`;
CREATE TABLE `tb_user` (
  `id` bigint(20) NOT NULL,
  `user_name` varchar(20) NOT NULL,
  `password` varchar(20) NOT NULL,
  `name` varchar(30) DEFAULT NULL,
  `age` int(11) DEFAULT NULL,
  `email` varchar(50) DEFAULT NULL,
  `birthday` datetime DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

-- ----------------------------
-- Records of tb_user
-- ----------------------------
INSERT INTO `tb_user` VALUES ('1', 'zhangsan', '111', '张三', '18', '[email protected]', '2020-06-01 22:51:03');

IDEA连接数据库:
Mybatis-Plus初体验,从此钟情。_第5张图片Mybatis-Plus初体验,从此钟情。_第6张图片
工程搭建:maven工程搭建
pom.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>2.1.3.RELEASE</version>
    </parent>
    <groupId>com.lidadaibiao.mbplus</groupId>
    <artifactId>dadaibiao-mbplus-springboot</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>pom</packaging>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <!--简化代码工具包-->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <!--mybatis-plus的springboot支持-->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.1.0</version>
        </dependency>
        <!--mysql驱动-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.11</version>
        </dependency>
    </dependencies>
</project>

编写基本的application.properties
Mybatis-Plus初体验,从此钟情。_第7张图片

spring.application.name = dadaibiao-mbplus-springboot

spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/mp?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&useSSL=false
spring.datasource.username=root
spring.datasource.password=root
# Logger Config 
logging.level.root: debug

实体类(pojo)

package com.lidadaibiao.mbplus.pojo;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;

import java.time.LocalDateTime;

/**
 * @author Lidadaibiao
 * @date 2020/6/1 - 22:54
 */

@TableName("tb_user")
public class User {

    @TableId("id") //指定主键字段名
    private long id;

    @TableField("user_name") //指定对应字段名
    private String userName;

    @TableField("password") //指定对应字段名
    private String password;

    @TableField("name") //指定对应字段名
    private String name;

    @TableField("age") //指定对应字段名
    private String age;

    @TableField("email") //指定对应字段名
    private String email;

    @TableField("birthday")
    private LocalDateTime birthday;

}

mapper接口(只需继承BaseMapper)

package com.lidadaibiao.mbplus.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.lidadaibiao.mbplus.pojo.User;

/**
 * @author Lidadaibiao
 * @date 2020/6/1 - 23:00
 */
public interface UserMapper extends BaseMapper<User> {
}

启动类:

package com.lidadaibiao.mbplus;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

/**
 * @author Lidadaibiao
 * @date 2020/6/1 - 23:01
 */
@SpringBootApplication
@MapperScan("com.lidadaibiao.mbplus.mapper") //设置扫描mapper接口的扫描包
public class MpTestApp {

    public static void main(String[] args) {
        SpringApplication.run(MpTestApp.class,args);
    }
}

测试类

package com.lidadaibiao.mbplus;

import com.lidadaibiao.mbplus.pojo.User;
import com.lidadaibiao.mbplus.mapper.UserMapper;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;

import java.util.List;

/**
 * @author Lidadaibiao
 * @date 2020/6/1 - 23:04
 */
@RunWith(SpringRunner.class)
@SpringBootTest
public class UserTest {


    @Autowired
    UserMapper userMapper;

    @Test
    public void testSelect(){
        List<User> list =  userMapper.selectList(null);
        for (User user : list) {
            System.out.println(user.toString());
        }

    }
}

最后Debug一下:
Mybatis-Plus初体验,从此钟情。_第8张图片Mybatis-Plus初体验,从此钟情。_第9张图片

我的天啊,这么方便。你还等什么,真的不用吗?后续会继续学习和整理Mybatis-Plus有关的知识哦!!

最后祝愿和我一样年轻的孩子们,六一儿童节快乐。。

你可能感兴趣的:(数据库,java,mybatis,spring,mysql)