目录
前言
一、了解Mybatis-Plus
1.简介
2.Mybatis-Plus具有的特性
3.支持数据库
4.框架结构
5.官网链接
二、快速开始
2.1.创建数据库以及表
2.2.创建工程
2.3 Mybatis+Mybatis-Plus的使用
2.3.1创建一个itcast-mybatis-plus-simple的maven项目
2.3.2写UserMapper接口
2.3.3写User实体类
2.3.4 用mybatis-plus里的方法直接调用
2.3.5 效果图
总结
前言
Mybatis-Plus是简化开发的一款强大工具。学完Mybatis-Plus会使我们开发更加简单快速~
一、了解Mybatis-Plus
1.简介
MyBatis-Plus (opens new window)(简称 MP)是一个 MyBatis (opens new window)的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。
2.Mybatis-Plus具有的特性
- 无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑
- 损耗小:启动即会自动注入基本 CURD,性能基本无损耗,直接面向对象操作
- 强大的 CRUD 操作:内置通用 Mapper、通用 Service,仅仅通过少量配置即可实现单表大部分 CRUD 操作,更有强大的条件构造器,满足各类使用需求
- 支持 Lambda 形式调用:通过 Lambda 表达式,方便的编写各类查询条件,无需再担心字段写错
- 支持主键自动生成:支持多达 4 种主键策略(内含分布式唯一 ID 生成器 - Sequence),可自由配置,完美解决主键问题
- 支持 ActiveRecord 模式:支持 ActiveRecord 形式调用,实体类只需继承 Model 类即可进行强大的 CRUD 操作
- 支持自定义全局通用操作:支持全局通用方法注入( Write once, use anywhere )
- 内置代码生成器:采用代码或者 Maven 插件可快速生成 Mapper 、 Model 、 Service 、 Controller 层代码,支持模板引擎,更有超多自定义配置等您来使用
- 内置分页插件:基于 MyBatis 物理分页,开发者无需关心具体操作,配置好插件之后,写分页等同于普通 List 查询
- 分页插件支持多种数据库:支持 MySQL、MariaDB、Oracle、DB2、H2、HSQL、SQLite、Postgre、SQLServer 等多种数据库
- 内置性能分析插件:可输出 SQL 语句以及其执行时间,建议开发测试时启用该功能,能快速揪出慢查询
- 内置全局拦截插件:提供全表 delete 、 update 操作智能分析阻断,也可自定义拦截规则,预防误操作
3.支持数据库
大多数主流数据库都可以使用。
-
MySQL,Oracle,DB2,H2,HSQL,SQLite,PostgreSQL,SQLServer,Phoenix,Gauss ,ClickHouse,Sybase,OceanBase,Firebird,Cubrid,Goldilocks,csiidb
-
达梦数据库,虚谷数据库,人大金仓数据库,南大通用(华库)数据库,南大通用数据库,神通数据库,瀚高数据库
4.框架结构
5.官网链接
想要了解更多可进官网学习哦~
简介 | MyBatis-Plus
二、快速开始
2.1.创建数据库以及表
代码:
-- 建库
create database study;
use study;
-- 建表
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
`user_id` int(32) NOT NULL AUTO_INCREMENT COMMENT '用户id',
`user_name` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '用户名称',
`user_password` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '用户密码',
`user_email` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '用户邮箱(用户账号)',
`user_role` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '用户角色',
`user_status` varchar(1) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '用户状态(0:正常,1:禁用)',
PRIMARY KEY (`user_id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
INSERT INTO `user` VALUES (1, '王五', '123456', 'wangwu@itcast.cn', 'ADMIN', '0');
INSERT INTO `user` VALUES (2, '张三', '12345', 'zhangsan@itcast.cn', 'USER', '0');
INSERT INTO `user` VALUES (3, '李四', '1234', 'lisi@itcast.cn', 'USER', '0');
INSERT INTO `user` VALUES (4, '赵六', '666666', 'zhaoliu@itcast.cn', 'USER', '0');
查看建好的表
2.2.创建工程
1.创建一个itcast-mybatis-plus的maven项目
2.导入所需的依赖
<?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>
<groupId>org.example</groupId>
<artifactId>itcast-mybatis-plus</artifactId>
<packaging>pom</packaging>
<version>1.0-SNAPSHOT</version>
<modules>
<module>itcast-mybatis-plus-simple</module>
</modules>
<dependencies>
<!-- mybatis-plus插件依赖-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus</artifactId>
<version>3.1.1</version>
</dependency>
<!-- Mysql-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.11</version>
</dependency>
<!-- 连接池-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.12</version>
</dependency>
<!-- 简化bean代码的工具包-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
<version>1.18.20</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<!-- <scope>test</scope>-->
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>2.0.1</version>
</dependency>
</dependencies>
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
</project>
3.查看依赖是否导入成功
2.3 Mybatis+Mybatis-Plus的使用
2.3.1创建一个itcast-mybatis-plus-simple的maven项目
2.3.2写UserMapper接口
public interface UserMapper extends BaseMapper<User> {
//public interface UserMapper {
List<User> findAll();
}
继承BaseMapper,User是实体类
2.3.3写User实体类
package cn.itcast.study.simple.pojo;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* lombok注解 自动生成get/set 构造方法
* */
@Data
@NoArgsConstructor//生成无参构造
@AllArgsConstructor//生成有参构造
//@TableName("user")
public class User {
private Integer userId;
private String userName;
private String userPassword;
private String userEmail;
private String userRole;
private String userStatus;
}
2.3.4 用mybatis-plus里的方法直接调用
2.3.5 效果图
从日志可看出自动生成的sql代码
可以看出mybatis-plus自动将实体类首字母小写作为表名,字段名是将第一个大写字母自动变成‘_+小写字母’ 。如果表名不是user也可在实体类上加注解@TableName("表名")
总结
这是MyBatis和MyBatis-Plus的运用部分,后期会发Spring+Mybatis+Mybatis-Plus的使用和SpringBoot+Mybatis+Mybatis-Plus的使用,以后简单的增删改查再也不用自己写sql了,哈哈~