学校就像女神一样,你永远猜不透她什么时候做什么。
女神(学校):“马上开学,出去的赶紧回来,不然报道不准时,给你处分”。
我:“我天,处分???? 回去回去,从深圳屁颠屁颠回到老家”。
女神:“那个哈,开学一定要等通知,等通知,不能擅自返校,经研究第一批6月20返校”
我:
女神又让我在家闲了快1个月,今天整了个支付的项目,用到了Mybatis-Plus
为什么会有那么好使的东西呢。爱了爱了,那可必须记录爱的初体验啊。
一:简单介绍Mybatis-Plus
二:快速入门
MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发 提 高效率而生。该框架由baomidou(苞米豆)组织开发并且开源的
官网
整体架构图:
执行流程:
(1)扫描注解Entity,反射提取注解信息如:表名称 字段名称等信息。
(2)分析注解信息并基于com.baomidou.mybatisplus.core.enums的SQL模板生成基本 CRUD SQL。
(3)最后将这些SQL注入到Mybatis环境中。 因此Mybatis plus无需编写CRUD SQL语句,只需继承BaseMapper,魔术般的拥有了CRUD功能(通用CRUD)。
本人环境: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连接数据库:
工程搭建: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>
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());
}
}
}
最后祝愿和我一样年轻的孩子们,六一儿童节快乐。。