电脑配置单生成器(自选电脑配置网站)
ORM: Object Relational Mapping, 对象关系映射,即将关系型数据库表与编程语言中的对象进行自动转换的概念。
在日常软件程序开发中,尤其是Java Web项目,ORM是必不可少的持久层框架。
ORM框架有多种多样,如Hibernate,MyBatis。
今天分享一个常用的,能够快速上手的ORM框架:MyBatis-Plus。
MyBatis-Plus介绍
MyBatis-Plus(简称 MP)是一个 MyBatis的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。
由它的介绍,我们可以知道MyBatis-Plus实际上依赖于MyBatis,主要作用是在MyBatis的基础上新增了需要高级特性。
什么是MyBatis?
MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。
它可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。
MyBatis-Plus架构及使用
MyBatis-Plus使用步骤(基于SpringBoot):
1. 添加Maven依赖
<dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.5.1</version></dependency>
2.配置 MapperScan 注解
设置Mapper扫描路径。
@SpringBootApplication@MapperScan("com.baomidou.mybatisplus.samples.quickstart.mapper")public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); }}
3.编码
编写实体类 User.java(此处使用了 Lombok 简化代码)
// 指定数据库表名@TableName("sys_user")@Datapublic class User { // 指定数据库主键 @TableId private Long id; // 指定数据库字段映射 @TableField("nickname") private String name; private Integer age; private String email;}
编写 Mapper 包下的 UserMapper接口
public interface UserMapper extends BaseMapper<User> {}
4.使用Mapper查询
List<User> userList = userMapper.selectList(null);
通过以上4个步骤,即可完成MyBatis-Plus的接入。
MyBatis-Plus支持的数据库
MyBatis 支持大部分常用的关系型数据库,包括:
MySQL,Oracle,DB2,H2,HSQL,SQLite,PostgreSQL,SQLServer,Phoenix,Gauss ,ClickHouse,Sybase,OceanBase,Firebird,Cubrid,Goldilocks,csiidb达梦数据库,虚谷数据库,人大金仓数据库,南大通用(华库)数据库,南大通用数据库,神通数据库,瀚高数据库MyBatis-Plus特性无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑损耗小:启动即会自动注入基本 CURD,性能基本无损耗,直接面向对象操作
IService接口中定义了基本的CRUD操作,在业务Service中实现IService接口即可获得CRUD能力。
另外,Entity实体继承的Model类中也集成了基本的CRUD操作,所有我们使用Service或Entity都可以完成对表的基本CRUD。
强大的 CRUD 操作:内置通用 Mapper、通用 Service,仅仅通过少量配置即可实现单表大部分 CRUD 操作,更有强大的条件构造器,满足各类使用需求
BaseMapper:
BaseMapper中预定义方法对应处理类:
支持 Lambda 形式调用:通过 Lambda 表达式,方便地编写各类查询条件,无需再担心字段写错。
支持LambdaQueryWrapper:
支持主键自动生成:支持多达4种主键策略(内含分布式唯一 ID 生成器 - Sequence),可自由配置,完美解决主键问题。
支持 ActiveRecord 模式:支持 ActiveRecord 形式调用,实体类只需继承 Model 类即可进行强大的 CRUD 操作。
支持自定义全局通用操作:支持全局通用方法注入( Write once, use anywhere )
如: 自动填充,SQL注入器等功能。
内置代码生成器:采用代码或者 Maven 插件可快速生成 Mapper 、 Model 、 Service 、 Controller 层代码,支持模板引擎,更有超多自定义配置等您来使用。
内置分页插件:基于 MyBatis 物理分页,开发者无需关心具体操作,配置好插件之后,写分页等同于普通 List 查询
分页插件支持多种数据库:支持 MySQL、MariaDB、Oracle、DB2、H2、HSQL、SQLite、Postgre、SQLServer 等多种数据库。内置性能分析插件:可输出 SQL 语句以及其执行时间,建议开发测试时启用该功能,能快速揪出慢查询。内置全局拦截插件:提供全表 delete 、 update 操作智能分析阻断,也可自定义拦截规则,预防误操作。
最后
总的来说,MyBatis-Plus 在MyBatis基础上提供了更多常用的功能,让开发者能够减少一些通用轮子的开发,省事省力。
让CRUD Boy们能花更多的时间撸代码(摸鱼~)了。
感兴趣的小伙伴们可以留言,转发一起交流学习。