网站建设技术教程,腾讯企业邮箱二维码登录,站长seo计费系统,精选聊城做网站的公司1.什么是MybatisPlus
MyBatis-Plus 官网
为什么要学MybatisPlus#xff1f;
MybatisPlus可以节省大量时间#xff0c;所有的CRUD代码都可以自动化完成MyBatis-Plus是一个MyBatis的增强工具#xff0c;在 MyBatis 的基础上只做增强不做改变#xff0c;为简化开发、提高效…1.什么是MybatisPlus
MyBatis-Plus 官网
为什么要学MybatisPlus
MybatisPlus可以节省大量时间所有的CRUD代码都可以自动化完成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 操作智能分析阻断也可自定义拦截规则预防误操作
支持数据库 任何能使用 MyBatis 进行 CRUD, 并且支持标准 SQL 的数据库具体支持情况如下如果不在下列表查看分页部分教程 PR 您的支持。 MySQLOracleDB2H2HSQLSQLitePostgreSQLSQLServerPhoenixGauss ClickHouseSybaseOceanBaseFirebirdCubridGoldilockscsiidbinformixTDengineredshift达梦数据库虚谷数据库人大金仓数据库南大通用(华库)数据库南大通用数据库神通数据库瀚高数据库优炫数据库
框架结构 2.快速入门
2.1.创建数据库mybatis_plus
2.2.创建user表
DROP TABLE IF EXISTS user;CREATE TABLE user
(id BIGINT(20) NOT NULL COMMENT 主键ID,name VARCHAR(30) NULL DEFAULT NULL COMMENT 姓名,age INT(11) NULL DEFAULT NULL COMMENT 年龄,email VARCHAR(50) NULL DEFAULT NULL COMMENT 邮箱,PRIMARY KEY (id)
);2.3.插入数据
DELETE FROM user;INSERT INTO user (id, name, age, email) VALUES
(1, Jone, 18, test1baomidou.com),
(2, Jack, 20, test2baomidou.com),
(3, Tom, 28, test3baomidou.com),
(4, Sandy, 21, test4baomidou.com),
(5, Billie, 24, test5baomidou.com);2.4.初始化工程 快速初始化一个空的spring boot 项目 2.5.添加依赖
引入 Spring Boot Starter 父工程
parentgroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-parent/artifactIdversion2.6.3/versionrelativePath/
/parent引入依赖 dependencies!--spring boot启动器--dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter/artifactId/dependency!--测试启动器--dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-test/artifactIdscopetest/scope/dependency!--mybatis-plus启动器--dependencygroupIdcom.baomidou/groupIdartifactIdmybatis-plus-boot-starter/artifactIdversion3.5.1/version/dependency!--lombok简化实体类开发--dependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactIdoptionaltrue/optional/dependency!--mysql驱动--dependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactIdscoperuntime/scope/dependency/dependenciesbuildpluginsplugingroupIdorg.springframework.boot/groupIdartifactIdspring-boot-maven-plugin/artifactId/plugin/plugins/build2.6.配置文件application.yml
spring:# 数据库datasource:type: com.zaxxer.hikari.HikariDataSourcedriver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://localhost:3306/mybatis_plus?useSSLfalseserverTimezoneAsia/ShanghaicharacterEncodingutf-8username: rootpassword: rootmybatis-plus:configuration:# 日志log-impl: org.apache.ibatis.logging.stdout.StdOutImpl2.7.实体类
Data
public class User {private Long id;private String name;private Integer age;private String email;
}2.8.mapper接口
Repository
public interface UserMapper extends BaseMapperUser {
}2.9.启动类
SpringBootApplication
MapperScan(org.qh.mapper)
public class Application {public static void main(String[] args) {SpringApplication.run(Application.class, args);}
}2.10.测试类
SpringBootTest
public class UserMapperTest {Resourceprivate UserMapper userMapper;/*** 根据id查询*/Testpublic void selectById(){User user userMapper.selectById(1);System.out.println(user user);}/*** 查询所有*/Testpublic void selectList(){ListUser users userMapper.selectList(null);users.forEach(System.out::println);}/*** 根据map集合中的条件查询*/Testpublic void selectByMap(){MapString,Object mapnew HashMap();map.put(name,Tom);map.put(age,28);ListUser users userMapper.selectByMap(map);users.forEach(System.out::println);}/*** 根据多个id进行批量查询*/Testpublic void selectBatchIds(){ListLong ids Arrays.asList(1L, 2L, 3L);ListUser users userMapper.selectBatchIds(ids);users.forEach(System.out::println);}/*** 添加并返回id*/Testpublic void insert(){User user new User();user.setName(李四);user.setAge(24);user.setEmail(lisiqq.com);int result userMapper.insert(user);System.out.println(result result);//获取id - getId() , 雪花算法System.out.println(id user.getId());}/*** 根据id删除*/Testpublic void deleteById(){int result userMapper.deleteById(1643510434159525889L);System.out.println(result result);}/*** 根据map集合中的条件删除*/Testpublic void deleteByMap(){MapString,Object mapnew HashMap();map.put(name,张三);map.put(age,23);int result userMapper.deleteByMap(map);System.out.println(result result);}/*** 根据多个id实现批量删除*/Testpublic void deleteBatchIds(){ListLong ids Arrays.asList(1L, 2L);int result userMapper.deleteBatchIds(ids);System.out.println(result result);}/*** 更新*/Testpublic void updateById(){User user new User();user.setId(3L);user.setName(李四);user.setEmail(lisiqq.com);int result userMapper.updateById(user);System.out.println(result result);}}