当前位置:   article > 正文

程序员应该懂点Mybatis-Plus,真的好用(一)_mybatis plus该不该用

mybatis plus该不该用

一、Mybatis-Plus是什么?

Mybatis-plus 是一个基于 Mybatis 的增强工具,提供了许多便捷的 CRUD 操作和其他实用功能,简化了数据库访问的开发工作。它是 Mybatis 的一个开源组件,遵循 Apache 2.0 协议。

Mybatis-plus 的主要功能包括:

  • 自动代码生成器:通过简单配置,可以快速生成 Mapper 接口和实体类的代码;
  • 便捷的 CRUD 操作:提供了多种查询和更新操作的 API,使操作数据库更加简单易用;
  • 通用分页插件:支持多种数据库的分页查询,并提供了丰富的分页参数设置和结果处理方法;
  • 条件构造器:可以根据复杂的查询条件动态生成 SQL,简化了查询操作;
  • 逻辑删除:支持逻辑删除,并提供了逻辑删除时自动填充字段的功能;
  • 乐观锁:支持基于版本号的乐观锁;
  • 序列生成器:支持多种数据库的序列生成策略。

Mybatis-plus 提供了丰富的文档和示例,使开发人员能够更快地上手和使用它的功能。它也得到了广泛的社区支持和贡献,成为了国内开发者广泛使用的数据库访问框架之一。

可以参考官方文档    ​官方文档

二、环境准备

1、添加依赖

在Maven项目中,可以在pom.xml文件中添加以下依赖:

 关于依赖版本可以到,依赖库查看   Maven依赖库https://mvnrepository.com/

 引入mybatis-plus依赖:

  1. <dependency>
  2. <groupId>com.baomidou</groupId>
  3. <artifactId>mybatis-plus-boot-starter</artifactId>
  4. <version>3.5.0</version>
  5. </dependency>
  6. 或者
  7. <dependency>
  8. <groupId>com.baomidou</groupId>
  9. <artifactId>mybatis-plus-boot-starter</artifactId>
  10. <version>{latest-version}</version>
  11. </dependency>

引入 Mybatis-plus 的代码生成器模块:.

  1. <dependency>
  2. <groupId>com.baomidou</groupId>
  3. <artifactId>mybatis-plus-generator</artifactId>
  4. <version>3.2.0</version>
  5. </dependency>

引入mysl或者oracle:

1:引入 MySQL 数据库的 JDBC 驱动

  1. <dependency>
  2. <groupId>mysql</groupId>
  3. <artifactId>mysql-connector-java</artifactId>
  4. <version>8.0.27</version>
  5. </dependency>

2.引入 Oracle 数据库的 JDBC 驱动 

  1. <dependency>
  2. <groupId>com.oracle.database.jdbc</groupId>
  3. <artifactId>ojdbc6</artifactId>
  4. <version>11.2.0.4</version>
  5. </dependency>

还需要引入mybatis-plus关于多数据源的依赖

  1. <!-- mybatis-plus 多数据源 -->
  2. <dependency>
  3. <groupId>com.baomidou</groupId>
  4. <artifactId>dynamic-datasource-spring-boot-starter</artifactId>
  5. <version>3.5.0</version>
  6. </dependency>

注:有多数据源的要求,或者是主从部署的要求时需要引入多数据源的依赖。

 2.2 配置Mybatis-plus:

在Spring Boot项目中,可以在application.yml文件中添加以下配置:

  1. mybatis-plus:
  2. type-enums-package: com.zt.plant.traed.api.domain.*
  3. type-aliases-package: com.zt.plant.traed.*.domain
  4. mapper-locations: classpath:/mapper/**/*.xml

常规使用的话,配置枚举类包,实体类表(存储跟表明相关的DTO),映射文件位置(通用)

 2.2.1 配置字段说明

Mybatis-plus 是一个 Mybatis 的增强工具,提供了很多实用的功能,同时也引入了一些新的配置项。下面是一些常用的 Mybatis-plus 中的配置项说明:

  • mapper-locations:指定 Mybatis XML 映射文件的位置,可以使用通配符。
  • type-aliases-package:指定实体类的包名,Mybatis-plus 会自动将这些实体类注册为别名,方便在 XML 映射文件中使用。
  • type-enums-package 是 Mybatis-plus 中的一个配置项,用于指定枚举类型所在的包名,以便 Mybatis-plus 在进行类型处理时能够自动将这些枚举类型注册为类型处理器。
  • type-handlers-package:指定类型处理器的包名,Mybatis-plus 会自动扫描该包下的类型处理器,并注册到 Mybatis 中。
  • configuration.cache-enabled:控制 Mybatis 是否启用二级缓存,默认为 true。
  • configuration.lazy-loading-enabled:控制 Mybatis 是否启用延迟加载,默认为 false。
  • configuration.map-underscore-to-camel-case:控制 Mybatis 是否开启驼峰命名自动映射,默认为 false。
  • configuration.default-fetch-size:设置默认的 JDBC fetchSize,默认为未设置。
  • configuration.default-statement-timeout:设置默认的 JDBC 查询超时时间,默认为未设置。
  • configuration.default-executor-type:设置默认的执行器类型,可选值为 SIMPLE、REUSE 和 BATCH,默认为 SIMPLE。
  • configuration.call-setters-on-nulls:控制 Mybatis 是否调用 setter 方法设置 null 值,默认为 false。
  • configuration.jdbc-type-for-null:控制 Mybatis 如何处理 null 值,可选值为 NULL、VARCHAR、OTHER(默认为 NULL)。
  • configuration.log-impl:指定 Mybatis 使用的日志框架,默认为 Log4j2。
  • configuration.wrap-result-maps:控制 Mybatis 是否对结果集进行包装,默认为 false。
  • configuration.default-statement-type:设置默认的语句类型,可选值为 STATEMENT、PREPARED 或 CALLABLE,默认为 PREPARED。
  • global-config.db-config.id-type:设置全局的 ID 生成策略,可选值为 AUTO、NONE、INPUT、ID_WORKER、UUID、ID_WORKER_STR,默认为 AUTO。
  • global-config.db-config.logic-delete-field:设置逻辑删除字段的名称,默认为 null,表示不使用逻辑删除。
  • global-config.db-config.logic-delete-value:设置逻辑删除标记的值,默认为 1。
  • global-config.db-config.logic-not-delete-value:设置未删除标记的值,默认为 0。

这些配置项可以在 mybatis-plus-config.xmlapplication.yml(或 application.properties)文件中进行配置。根据具体需求选择需要配置的配置项即可。

2.3 springboot启动类

配置@MapperScan注解,用于扫描Mapper文件位置:

  1. @EnableScheduling
  2. @SpringBootApplication
  3. @EnableSwaggerBootstrapUI //开启swagger 增强, 排序等
  4. @EnableDiscoveryClient //开启服务发现客户端
  5. @MapperScan("com.zt.plant.traed.api.repository")//mybatis-plus扫描接口
  6. @ComponentScan(basePackages = {"com.zt.plant.*"})
  7. public class recentlyApplication {
  8. public static void main(String[] args) {
  9. SpringApplication.run(recentlyApplication.class, args);
  10. }
  11. }

2.4 数据源配置

  1. # 数据库配置
  2. datasource:
  3. type: com.zaxxer.hikari.HikariDataSource
  4. driverClassName: oracle.jdbc.OracleDriver
  5. url: jdbc:oracle:thin:@//110.111.10.10:1521/orcl
  6. username: system
  7. password: oracledba
  8. # Hikari 连接池配置
  9. hikari:
  10. # 最小空闲连接数量
  11. minimum-idle: 5
  12. # 空闲连接存活最大时间,默认60000010分钟)
  13. idle-timeout: 900000
  14. # 连接池最大连接数,默认是10
  15. maximum-pool-size: 50
  16. # 此属性控制从池返回的连接的默认自动提交行为,默认值:true
  17. auto-commit: true
  18. # 连接池名称 pool-name: MyHikariCP
  19. # 此属性控制池中连接的最长生命周期,值0表示无限生命周期,默认180000030分钟
  20. max-lifetime: 1800000
  21. # 数据库连接超时时间,默认30秒,即30000
  22. connection-timeout: 30000
  23. connection-test-query: SELECT 1 FROM DUAL
  24. schema-username: Recently

HikariCP 是一个高性能的 JDBC 连接池,是目前被广泛使用的连接池之一。它是一个轻量级的连接池,具有优异的性能表现和低资源消耗,能够极大地提高应用程序的数据库访问性能和并发处理能力。 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/码创造者/article/detail/790661
推荐阅读
相关标签
  

闽ICP备14008679号