百度
360搜索
搜狗搜索

不要使用mybatisplus,大公司用mybatisplus吗详细介绍

本文目录一览:

  • 1、
  • 2、

MyBatis-Plus 使用这么方便,底层是如何处理的呢?

MyBatis-Plus是一个基于MyBatis的增强工具,它不仅继承了MyBatis的强大功能,还增加了一系列实用功能,旨在简化开发过程并提高开发效率。

MyBatis-Plus在原有MyBatis框架的基础上增加了如乐观锁插件、字段自动填充功能、分页插件、条件构造器以及SQL注入器等实用功能。这使得开发者能够无需编写任何XML文件,直接通过继承BaseMapper接口的类对象完成对数据库的映射操作。

其核心工作流程如下所述:

1. **自动配置与组件注入**

* MyBatis-Plus通过MybatisPlusAutoConfiguration自动配置类提供sqlSessionFactory()方法,为Spring创建sqlSession的工厂类对象。这个方法不仅注入了MyBatis本身的组件,还注入了MyBatis-Plus特有的主键生成器、SQL注入器等关键组件。

2. **SqlSessionFactory的创建与懒加载**

* MybatisSqlSessionFactoryBean执行懒加载策略,最终通过其getObject()方法获取到SqlSessionFactory工厂类对象。这个过程中涉及到了buildSqlSessionFactory()方法的调用,它负责构建SqlSessionFactory。

3. **解析配置文件与Mapper映射**

* MyBatisXMLConfigBuilder的parse()方法负责解析配置文件,最终调用到mapperElement()方法,完成Mapper的解析工作并将其添加到MybatisConfiguration配置类中。

* MybatisMapperAnnotationBuilder的parse()方法则开始完成Mapper接口中的方法与SQL语句的映射工作。这其中,parseStatement()方法负责解析@Select、@Update等注解中的SQL语句,而SQL注入器则负责完成Mapper方法与SQL语句的转化。

4. **通用方法与SQL语句准备**

* AbstractSqlInjector的inspectInject()方法负责准备BaseMapper接口中通用方法对应的SQL语句。这主要通过AbstractMethod的inject()方法实现,进一步调用其子类的injectMappedStatement()方法。例如,SelectOne的SQL语句核心在于SqlMethod枚举类,它缓存了可以动态拼接的SQL语句脚本。

5. **Mapper接口的扫描与注册**

* 通过@MapperScan注解引入MapperScannerRegistrar类,该类实现了ImportBeanDefinitionRegistrar接口并重写registerBeanDefinitions()方法,完成Mapper的扫描注册。

* MapperScannerConfigurer是Mapper接口的扫描配置类,它在容器启动过程中被回调,通过ClassPathMapperScanner的scan()方法完成Mapper的扫描与注册。

6. **动态代理与SQL执行**

* 容器中的Mapper实例实际上是通过MapperFactoryBean获取的。@Autowired自动注入Mapper时,会触发sqlSessionTemplate的getMapper()方法,最终调用到MybatisMapperRegistry的getMapper()方法,进入动态代理获取MapperProxy实例的流程。

* 调用Mapper接口的方法时,会触发代理对象的invoke()方法。此时,根据被调用的方法生成MybatisMapperMethod对象,通过execute()方法去真正地执行SQL语句,完成数据库操作。

总结起来,MyBatis-Plus通过一系列自动配置、解析、扫描、注册以及动态代理的流程,简化了数据库操作的开发过程,提高了开发效率。

大公司用mybatisplus吗

选择使用Hibernate或MyBatis等框架,并非依赖于公司的规模大小。这并不是一个规定或约定俗成的标准,没有规定什么样的公司必须使用哪种技术。因此,无论公司规模大小,都可以根据项目需求和团队技术能力来选择适合的持久层框架。

阅读更多 >>>  源码有了怎么搭建网站

网站数据信息

"不要使用mybatisplus,大公司用mybatisplus吗"浏览人数已经达到22次,如你需要查询该站的相关权重信息,可以点击进入"Chinaz数据" 查询。更多网站价值评估因素如:不要使用mybatisplus,大公司用mybatisplus吗的访问速度、搜索引擎收录以及索引量、用户体验等。 要评估一个站的价值,最主要还是需要根据您自身的需求,如网站IP、PV、跳出率等!