MyBatis Plus 3.x 基础配置与使用指南

发布时间: 2023-12-20 06:32:03 阅读量: 111 订阅数: 21
ZIP

mybatis-plus.zip

# 第一章:MyBatis Plus 3.x 简介 ## 1.1 MyBatis Plus 3.x 简介 MyBatis Plus 3.x 是一个用于简化 MyBatis 操作的增强工具库,它在原生 MyBatis 的基础上进行了扩展,提供了更为便捷和强大的功能。 ## 1.2 为什么选择 MyBatis Plus 3.x MyBatis Plus 3.x 提供了许多便捷的功能,包括但不限于: - 简化 CRUD 操作 - 提供方便的查询构造器 - 支持多种高级查询功能 - 提供代码生成器,减少手写代码量 - 集成了许多优秀的第三方扩展模块 ## 1.3 MyBatis Plus 3.x 与原生 MyBatis 的区别 相较于原生 MyBatis,MyBatis Plus 3.x 提供了更为简洁和便捷的操作方式,使得开发者能够更快速地进行数据访问层的开发。同时,MyBatis Plus 3.x 还提供了许多实用的功能和扩展,为开发者提供了更多选择和灵活性。 ## 第二章:MyBatis Plus 3.x 安装与配置 MyBatis Plus 3.x 是一个优秀的持久层框架,它在 MyBatis 的基础上进行了扩展,在简化了开发的同时也提供了更强大的功能。在本章中,我们将介绍如何安装和配置 MyBatis Plus 3.x,并将其集成到项目中。 ### 2.1 安装 MyBatis Plus 3.x 在项目中使用 MyBatis Plus 3.x 首先需要将其添加到项目的依赖中。如果你使用 Maven 进行项目管理,可以在 pom.xml 文件中添加以下依赖: ```xml <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.4.0</version> </dependency> ``` 如果你使用 Gradle 进行项目管理,可以在 build.gradle 文件中添加以下依赖: ```java implementation 'com.baomidou:mybatis-plus-boot-starter:3.4.0' ``` ### 2.2 配置 MyBatis Plus 3.x 在使用 MyBatis Plus 3.x 之前,需要进行一些基本的配置。首先,在 application.properties 或 application.yml 文件中配置数据源信息: ```yaml spring: datasource: url: jdbc:mysql://localhost:3306/mybatis_plus_demo username: root password: 123456 driver-class-name: com.mysql.cj.jdbc.Driver ``` 然后,创建一个配置类,配置 MyBatis Plus 3.x 的分页插件和逻辑删除插件: ```java @Configuration @MapperScan("com.example.demo.mapper") public class MyBatisPlusConfig { @Bean public PaginationInnerInterceptor paginationInnerInterceptor() { return new PaginationInnerInterceptor(); } @Bean public ISqlInjector sqlInjector() { return new LogicSqlInjector(); } } ``` ### 2.3 集成 MyBatis Plus 3.x 到项目中 最后,我们需要将 MyBatis Plus 3.x 集成到项目中。在 Spring Boot 主程序上添加 `@MapperScan` 注解,指定 Mapper 接口所在的包: ```java @SpringBootApplication @MapperScan("com.example.demo.mapper") public class MyApplication { public static void main(String[] args) { SpringApplication.run(MyApplication.class, args); } } ``` ### 第三章:MyBatis Plus 3.x 基础使用 MyBatis Plus 3.x 提供了许多方便快捷的方法来进行基础的数据库操作,接下来我们将介绍一些基础使用的内容。 #### 3.1 基本 CRUD 操作 MyBatis Plus 3.x 提供了一些简单易用的方法来进行 CRUD 操作,下面是一些常见的示例: ```java // 插入数据 User user = new User(); user.setName("John"); user.setAge(25); user.setEmail("john@example.com"); userMapper.insert(user); // 根据ID查询 User queryUser = userMapper.selectById(1); // 更新数据 queryUser.setName("Mike"); userMapper.updateById(queryUser); // 删除数据 userMapper.deleteById(1); ``` 上面代码中 `User` 是一个实体类,`userMapper` 是 MyBatis Plus 3.x 自动生成的 Mapper 接口。 #### 3.2 实体类与数据库表的映射 在 MyBatis Plus 3.x 中,实体类与数据库表的映射是通过注解来实现的,例如: ```java @TableName("user") public class User { @TableId(type = IdType.AUTO) private Long id; private String name; private Integer age; private String email; // 省略 getter 和 setter 方法 } ``` 上面的代码中,`@TableName` 注解用来指定该实体类对应的数据库表,`@TableId` 注解用来指定表的主键,这些注解可以大大简化实体类的编写和维护工作。 #### 3.3 查询构造器的使用 MyBatis Plus 3.x 提供了灵活的查询构造器,可以方便地构建复杂的查询条件,例如: ```java // 简单查询 List<User> userList = userMapper.selectList(null); // 条件查询 QueryWrapper<User> queryWrapper = new QueryWrapper<>(); queryWrapper.ge("age", 20).like("name", "J"); List<User> userList = userMapper.selectList(queryWrapper); ``` 在以上示例中,`QueryWrapper` 是条件构造器的类,可以通过它来灵活构建查询条件,大大简化了查询操作的编写。 ### 第四章:MyBatis Plus 3.x 高级功能 在本章中,我们将介绍 MyBatis Plus 3.x 的高级功能,包括分页查询、条件构造器的使用以及自定义 SQL 的操作。 #### 4.1 分页查询 在实际开发中,经常会遇到需要对数据库进行分页查询的情况。MyBatis Plus 3.x 提供了方便的分页查询功能,可以轻松地实现分页查询操作。 ```java // 示例代码 - Java // 创建分页查询条件 Page<User> page = new Page<>(1, 10); // 第一页,每页显示10条记录 // 执行分页查询 IPage<User> userPage = userMapper.selectPage(page, null); // 获取分页查询结果 List<User> userList = userPage.getRecords(); ``` 上述代码中,我们首先创建了一个分页查询的条件 Page,然后使用 selectPage 方法执行分页查询,最后通过 getRecords 方法获取查询结果。 #### 4.2 条件构造器的使用 在实际开发中,经常会根据不同的条件动态构造 SQL 查询语句。MyBatis Plus 3.x 提供了方便的条件构造器功能,可以灵活地构造各种复杂的查询条件。 ```java // 示例代码 - Java // 创建条件构造器 QueryWrapper<User> queryWrapper = new QueryWrapper<>(); // 添加查询条件 queryWrapper.eq("age", 25) .like("name", "Jack") .between("create_time", "2022-01-01", "2022-12-31"); // 执行条件查询 List<User> userList = userMapper.selectList(queryWrapper); ``` 上述代码中,我们使用 QueryWrapper 类创建了一个条件构造器,然后通过 eq、like、between 等方法添加不同的查询条件,最后使用 selectList 方法执行条件查询。 #### 4.3 自定义 SQL 除了使用 MyBatis Plus 3.x 提供的方法外,我们还可以自定义 SQL 查询语句来实现更加灵活和复杂的操作。 ```java // 示例代码 - Java @Select("SELECT * FROM user WHERE age > #{age} AND create_time > #{createTime}") List<User> customQuery(@Param("age") Integer age, @Param("createTime") String createTime); ``` 上述代码中,我们使用 @Select 注解自定义了一条 SQL 查询语句,其中可以传入参数,并通过 #{} 形式引用参数,实现自定义查询操作。 ## 第五章:MyBatis Plus 3.x 代码生成器 在本章中,我们将介绍如何使用 MyBatis Plus 3.x 代码生成器,并讨论代码生成器的作用以及配置与使用注意事项。 ### 5.1 代码生成器的作用 MyBatis Plus 3.x 代码生成器可以帮助快速生成包括实体类、Mapper 接口、Service 类以及Controller 类等各个层次的代码。通过代码生成器,可以大大减少手动编写重复代码的工作量,提高开发效率。 ### 5.2 使用 MyBatis Plus 3.x 代码生成器 #### 步骤一:引入相关依赖 首先,确保在项目的 `pom.xml` 文件中引入 MyBatis Plus 3.x 代码生成器的依赖: ```xml <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-generator</artifactId> <version>${mybatis-plus.version}</version> </dependency> ``` #### 步骤二:编写代码生成器配置类 ```java import com.baomidou.mybatisplus.generator.AutoGenerator; import com.baomidou.mybatisplus.generator.config.DataSourceConfig; import com.baomidou.mybatisplus.generator.config.GlobalConfig; import com.baomidou.mybatisplus.generator.config.PackageConfig; import com.baomidou.mybatisplus.generator.config.StrategyConfig; import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy; public class CodeGenerator { public static void main(String[] args) { // 代码生成器 AutoGenerator mpg = new AutoGenerator(); // 数据源配置 DataSourceConfig dsc = new DataSourceConfig(); dsc.setUrl("jdbc:mysql://localhost:3306/mybatis_plus_demo?useSSL=false&useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC"); dsc.setDriverName("com.mysql.cj.jdbc.Driver"); dsc.setUsername("root"); dsc.setPassword("root"); mpg.setDataSource(dsc); // 全局配置 GlobalConfig gc = new GlobalConfig(); gc.setOutputDir(System.getProperty("user.dir") + "/src/main/java"); gc.setAuthor("Your Name"); gc.setOpen(false); mpg.setGlobalConfig(gc); // 包配置 PackageConfig pc = new PackageConfig(); pc.setParent("com.example.mybatisplusdemo"); mpg.setPackageInfo(pc); // 策略配置 StrategyConfig strategy = new StrategyConfig(); strategy.setNaming(NamingStrategy.underline_to_camel); strategy.setColumnNaming(NamingStrategy.underline_to_camel); strategy.setSuperEntityClass("com.baomidou.mybatisplus.extension.activerecord.Model"); strategy.setEntityLombokModel(true); strategy.setRestControllerStyle(true); strategy.setInclude("your_table_name"); strategy.setControllerMappingHyphenStyle(true); mpg.setStrategy(strategy); // 执行生成 mpg.execute(); } } ``` ### 5.3 代码生成器配置与使用注意事项 - 在使用代码生成器前,务必确保数据库连接信息的准确性,并清楚指定要生成代码的数据表名称。 - 代码生成器生成的代码可以通过自定义模板进行定制,以满足个性化需求。 - 生成的代码可以进一步进行修改和优化,特别是在涉及业务逻辑的部分。 通过以上步骤,即可轻松使用 MyBatis Plus 3.x 代码生成器快速生成相关代码,提高开发效率。 ### 6. 第六章:MyBatis Plus 3.x 整合其他框架 MyBatis Plus 3.x 在实际项目中常常需要与其他框架进行整合,本章将介绍如何将 MyBatis Plus 3.x 整合到常见的框架中。 #### 6.1 整合 Spring Boot 在 Spring Boot 项目中使用 MyBatis Plus 3.x,首先需要引入相关依赖,并在配置文件中进行必要的配置。 1. 首先,在 pom.xml 文件中引入 MyBatis Plus 3.x 以及数据库驱动的相关依赖: ```xml <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>${mybatis.plus.version}</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>${mysql.connector.version}</version> </dependency> ``` 2. 在 application.properties 或 application.yml 中配置数据源和 MyBatis Plus 3.x 的相关属性: ```yaml spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://localhost:3306/mybatis_plus?useSSL=false&serverTimezone=UTC username: root password: root mybatis-plus: mapper-locations: classpath*:/mapper/**Mapper.xml ``` 3. 创建实体类、Mapper 接口以及 Service 类,在 Service 类中注入并使用 MyBatis Plus 3.x 的通用 CRUD 方法。 通过以上步骤,就可以将 MyBatis Plus 3.x 整合到 Spring Boot 项目中。 #### 6.2 整合 Spring MVC 在 Spring MVC 项目中使用 MyBatis Plus 3.x,同样需要引入相关依赖,并在配置文件中进行必要的配置。 1. 首先,在 pom.xml 文件中引入 MyBatis Plus 3.x 以及数据库驱动的相关依赖: ```xml <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus</artifactId> <version>${mybatis.plus.version}</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>${mysql.connector.version}</version> </dependency> ``` 2. 在 Spring MVC 的配置文件中配置数据源、MyBatis Plus 3.x 的 SqlSessionFactoryBean 以及 Mapper 扫描器: ```java @Configuration public class MyBatisConfig { @Bean public SqlSessionFactory sqlSessionFactory(DataSource dataSource) throws Exception { MybatisSqlSessionFactoryBean sqlSessionFactory = new MybatisSqlSessionFactoryBean(); sqlSessionFactory.setDataSource(dataSource); ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver(); sqlSessionFactory.setMapperLocations(resolver.getResources("classpath*:/mapper/**Mapper.xml")); return sqlSessionFactory.getObject(); } @Bean public MapperScannerConfigurer mapperScannerConfigurer() { MapperScannerConfigurer scannerConfigurer = new MapperScannerConfigurer(); scannerConfigurer.setBasePackage("com.example.mapper"); return scannerConfigurer; } } ``` 3. 创建实体类、Mapper 接口以及 Service 类,在 Service 类中注入并使用 MyBatis Plus 3.x 的通用 CRUD 方法。 通过以上步骤,就可以将 MyBatis Plus 3.x 整合到 Spring MVC 项目中。 #### 6.3 整合其他相关框架 MyBatis Plus 3.x 也可以与其他框架进行整合,比如 Spring Cloud、Quarkus 等,方法类似于整合到 Spring Boot 中的步骤。根据不同框架的特点,可能会有一些具体的配置差异,但整体上步骤是相似的。
corwn 最低0.47元/天 解锁专栏
买1年送1年
点击查看下一篇
profit 百万级 高质量VIP文章无限畅学
profit 千万级 优质资源任意下载
profit C知道 免费提问 ( 生成式Al产品 )

相关推荐

李_涛

知名公司架构师
拥有多年在大型科技公司的工作经验,曾在多个大厂担任技术主管和架构师一职。擅长设计和开发高效稳定的后端系统,熟练掌握多种后端开发语言和框架,包括Java、Python、Spring、Django等。精通关系型数据库和NoSQL数据库的设计和优化,能够有效地处理海量数据和复杂查询。
专栏简介
《Spring Boot 2.x, MyBatis Plus 3.x 与甘特图 Gantt 任务进度系统》专栏深入探讨了当前流行的Spring Boot 2.x框架和MyBatis Plus 3.x技术的使用方法,以及如何结合甘特图Gantt任务进度系统进行实际应用。涵盖了Spring Boot 2.x的自动配置、Web开发与RESTful服务、AOP与事务管理、缓存与性能优化、WebSocket与消息推送、安全防护与漏洞防范等多个方面的内容,为读者提供了全面的技术指南。同时,还介绍了MyBatis Plus 3.x中实体类注解、通用Mapper与Wrapper查询、动态SQL与高级查询、代码生成器与代码优化、多租户与数据隔离、性能监控与调优等内容,帮助读者更好地应用这一流行的ORM框架。此外,还探讨了甘特图Gantt任务进度系统的概述与实际应用,包括其视觉化展示、功能探索、任务管理与进度跟踪、数据存储与数据迁移、日程安排与提醒功能等方面的内容,使读者对该系统有了全面的了解。
最低0.47元/天 解锁专栏
买1年送1年
百万级 高质量VIP文章无限畅学
千万级 优质资源任意下载
C知道 免费提问 ( 生成式Al产品 )

最新推荐

【MCGS触摸屏操作快速上手】:新手必读指南(数字型、推荐词汇、实用型、权威性)

# 摘要 本文全面介绍了MCGS触摸屏的功能与操作基础,详细阐述了界面布局、导航技巧和自定义设置,强调了界面元素、菜单结构和快速操作的重要性。第二部分专注于配置和参数设置,讨论了参数设置的必要性、类型、配置方法及优化技巧,并提供实际配置案例分析。第三部分通过项目开发实践,讲述了项目创建、组织结构、编程逻辑与脚本应用以及操作演练,从理论到实际操作,再到案例分析,逐步深入。最后一章探讨了MCGS触摸屏的高级应用、维护、故障排除及技术升级策略,旨在提升用户的维护能力,确保系统的持续稳定运行。本文的目的是为MCGS触摸屏用户提供一整套理论知识和操作指南,以实现高效和专业的项目开发与管理。 # 关键字

提升医疗信息检索效率:DIP2.0时代的新策略与工具

![提升医疗信息检索效率:DIP2.0时代的新策略与工具](https://www.appstudio.ca/blog/wp-content/uploads/2021/09/AI-in-medical-imaging-1.jpg) # 摘要 随着数字信息处理(DIP2.0)时代的到来,医疗信息检索面临新的挑战和机遇。本文首先概述了DIP2.0及医疗信息检索的挑战,接着探讨了DIP2.0时代的基础理论与概念,涵盖了医疗信息检索的基础理论、DIP2.0核心概念与技术框架以及提升检索效率的理论模型。第三章详细介绍了DIP2.0时代的实践工具与应用,包括检索工具的使用、医疗数据集的构建与管理,以及检

ZEMAX中的zpl函数:原理、应用及实战演练全解析

![ZEMAX的zpl函数.pdf](https://supportcommunity.zebra.cn/servlet/rtaImage?eid=ka16S000000OMFc&feoid=00N0H00000K2Eou&refid=0EM6S000005fY3n) # 摘要 ZEMAX光学设计软件是业界广泛使用的光学系统设计工具,提供了强大的ZPL(ZEMAX Programming Language)函数库以支持高级自动化和定制化设计。本文首先介绍了ZEMAX光学设计软件及其ZPL函数的基础知识,包括定义、语法规则以及预定义变量和函数的作用。随后,文章深入探讨了ZPL函数在光学设计参数

Fluent Scheme快速入门指南:精通语言集成查询的10个秘诀

![Fluent Scheme快速入门指南:精通语言集成查询的10个秘诀](https://media.geeksforgeeks.org/wp-content/uploads/20231214122551/syntax-of-recursion-in-c.png) # 摘要 本文旨在全面介绍Fluent Scheme语言及其在集成查询方面的应用。首先,文章概述了Fluent Scheme的基本概念和语言集成查询的重要性。随后,通过深入探讨Fluent Scheme的基础语法和特点,包括其简洁的语法结构、函数式编程特性以及环境搭建,本文为读者提供了扎实的入门基础。接着,文章重点介绍了Flue

网络故障诊断宝典:利用TC8-WMShare进行OPEN Alliance网络故障精确定位

![网络故障诊断宝典:利用TC8-WMShare进行OPEN Alliance网络故障精确定位](https://www.dnsstuff.com/wp-content/uploads/2019/08/network-topology-types-1024x536.png) # 摘要 网络故障诊断是确保网络稳定性与高效性的关键环节。本文首先介绍了网络故障诊断的基础知识,并探讨了TC8-WMShare工具的使用环境设置。接下来,深入研究了OPEN Alliance协议在网络故障诊断中的理论基础,分析了其协议框架、关键组件功能,以及网络信号和模式识别的技术。重点阐述了TC8-WMShare工具在

主题改变的科学:深入了解Arduino IDE黑色主题的流行秘密

![主题改变的科学:深入了解Arduino IDE黑色主题的流行秘密](https://code.visualstudio.com/assets/docs/editor/accessibility/accessibility-select-theme.png) # 摘要 Arduino IDE黑色主题的起源与发展,不仅仅是视觉审美的改变,也反映了对编程环境用户体验和视觉舒适度的关注。本文探讨了黑色主题对视觉疲劳的影响、色彩心理学以及在显示技术中的应用。通过分析用户在不同环境下的体验、主题定制和用户反馈,本研究提供了黑色主题在Arduino IDE中的实践应用及优势。未来趋势部分则着重探讨个性

揭秘Sigrity SPB安装原理:为什么你的安装总是出错?

![Sigrity SPB](https://img.p30download.ir/software/screenshot/2017/07/1500135983_5.jpg) # 摘要 Sigrity SPB是一款用于电路板设计和分析的专业软件,其安装过程的准确性和效率对电路设计的成功至关重要。本文旨在提供一个全面的Sigrity SPB安装指南,涵盖了软件的基础理论、安装原理、常见故障原因及正确的安装方法和技巧。通过对软件定义、核心功能及安装步骤的分析,本文揭示了系统环境问题和用户操作错误对安装过程的影响,并提供了相应的解决方案。此外,通过实际应用案例分析,本文总结了成功安装的关键因素和失

【Android数据持久化新策略】:SQLite在通讯录中的极致应用

![【Android数据持久化新策略】:SQLite在通讯录中的极致应用](https://img-blog.csdnimg.cn/20190617115319256.PNG?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM4OTM3MDI1,size_16,color_FFFFFF,t_70) # 摘要 本文全面探讨了Android平台下数据持久化技术,特别聚焦于SQLite数据库的使用与优化。文章首先对Android数据持久化的

【RT LAB实时仿真系统软件:入门到精通】:掌握基础构建与高级应用的完整指南

![【RT LAB实时仿真系统软件:入门到精通】:掌握基础构建与高级应用的完整指南](http://www.opal-rt.com/wp-content/uploads/2016/03/RT-LAB_Workflow_Step3-1030x536.jpg) # 摘要 本文全面介绍了RT LAB实时仿真系统软件,从基础构建、核心功能到高级应用与性能优化进行了一系列详细阐述。首先概述了RT LAB的基本概念和理论基础,包括其工作原理、重要组件以及用户界面交互。随后,重点探讨了在模拟与测试方面的核心功能,涵盖仿真模型建立、实时测试、调试以及结果分析与报告生成。此外,文章还涉及了RT LAB的高级编

【Silvaco TCAD核心解析】:3个步骤带你深入理解器件特性

![Silvaco TCAD器件仿真器件特性获取方式及结果分析.pdf](https://i-blog.csdnimg.cn/blog_migrate/b033d5e6afd567b1e3484514e33aaf6a.png) # 摘要 Silvaco TCAD是半导体和电子领域中广泛使用的器件模拟软件,它能够模拟和分析从材料到器件的各种物理过程。本文介绍了TCAD的基本原理、模拟环境的搭建和配置,以及器件特性分析的方法。特别强调了如何使用TCAD进行高级应用技巧的掌握,以及在工业应用中如何通过TCAD对半导体制造工艺进行优化、新器件开发的支持和可靠性分析。此外,本文还探讨了TCAD未来发展