MyBatis-Plus 是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。
无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑
损耗小:启动即会自动注入基本 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 操作智能分析阻断,也可自定义拦截规则,预防误操作
PostgreSQL
MySQL
MariaDB
Oracle
OceanBase
GaussDB
SQLite
SQL Server
H2
DB2
HSQL
Phoenix
ClickHouse
Sybase
Firebird
Cubird
Goldilocks
Informix
TDengine
RedShift
Derby
DuckDB
Vastbase
GoldenDB
达梦
人大金仓
南大通用
瀚高
神州通用
虚谷
优炫
星瑞格
<dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.5.7</version> </dependency>
<dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-spring-boot3-starter</artifactId> <version>3.5.7</version> </dependency>
<dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus</artifactId> <version>3.5.7</version> </dependency>
创建实体类对应数据库
@Data @TableName("sys_user") public class SysUser extends Model<SysUser> { @TableId(type = IdType.AUTO) private Long userId; private Long deptId; private String loginName; ... }
创建一个Mapper接口
public interface SysUserMapper extends BaseMapper<SysUser> { }
即可使用
yml配置
ymlmybatis-plus:
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl #输出sql日志信息
mapper-locations: classpath*:mapper/*.xml #扫描xml文件,解决绑定错误的提示
启动类增加扫描配置
java@SpringBootApplication
@MapperScan("com.haowee.service.mapper")
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
创建实体类
java@Data
@TableName("sys_user")
public class SysUser extends Model<SysUser> {
@TableId(type = IdType.AUTO)
private Long userId;
private Long deptId;
private String loginName;
...
}
创建Mapper.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.haowee.service.mapper.SysUserMapper"> <!-- 通用查询映射结果 --> <resultMap id="BaseResultMap" type="com.haowee.service.entity.SysUser"> <id column="user_id" property="userId" /> .... </resultMap> <!-- 通用查询结果列 --> <sql id="Base_Column_List"> user_id.... </sql> </mapper>
创建Mapper接口
public interface SysUserMapper extends BaseMapper<SysUser> { }
创建IService
public interface ISysUserService extends IService<SysUser> { }
创建impl
@Service public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> implements ISysUserService { }
本文作者:Weee
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!