当你要使用one to one,many to one 就会碰到N+1的问题。很明显,对象之间关联很多有A关联B,B关联C,C关联A这样的关系,如果不是采用延迟加载,很容易一下在出现成千上万对象,造成N+1的问题。
而Mybatis 设置延迟加载主要2个属性配置:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
PUBLIC "-//ibatis.apache.org//DTD Config 3.0//EN" "http://ibatis.apache.org/dtd/ibatis-3-config.dtd">
<configuration>
<settings>
<setting name="lazyLoadingEnabled" value="false"/>
<setting name="aggressiveLazyLoading" value="true"/>
</settings>
</configuration>
lazyLoadingEnabled:true使用延迟加载,false禁用延迟加载。默认为true
aggressiveLazyLoading:true启用时,当延迟加载开启时访问对象中一个懒对象属性时,将完全加载这个对象的所有懒对象属性。false,当延迟加载时,按需加载对象属性(即访问对象中一个懒对象属性,不会加载对象中其他的懒对象属性)。默认为true
加载所有懒对象
<configuration>
<settings>
<setting name="lazyLoadingEnabled" value="true"/>
<setting name="aggressiveLazyLoading" value="true"/>
</settings>
</configuration>
按需加载对象属性
<configuration>
<settings>
<setting name="lazyLoadingEnabled" value="true"/>
<setting name="aggressiveLazyLoading" value="false"/>
</settings>
</configuration>
对继承spring配置如下:
<bean id="sqlSessionFactory"
class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="configLocation" value="classpath:setting.xml"/>
<property name="dataSource" ref="dataSource" />
</bean>
setting.xml是mybatis全局属性配置文件。
分享到:
相关推荐
在IT行业中,Spring、Netty和MyBatis是三个非常重要的框架,它们分别在不同的领域发挥着关键作用。Spring是一个全面的Java应用框架,提供强大的依赖注入、AOP(面向切面编程)以及丰富的功能模块;Netty则是一个高...
mybatis-spring 是一个 MyBatis 与 Spring 框架的整合库,它提供了与 Spring 的无缝集成,如事务管理、自动扫描 Mapper 类、SqlSession 的自动关闭等,简化了在 Spring 中使用 MyBatis 的过程。 七、最佳实践 1. ...
整合SpringMVC、MyBatis和MyBatisPlus,首先需要在项目中引入对应的依赖,然后配置SpringMVC的web.xml和Spring的配置文件。在Spring配置文件中,需要配置数据源、SqlSessionFactory、MyBatisPlus的配置以及...
在配置文件中,通常会指定MyBatis的配置文件路径`configLocation`,以及是否启用延迟加载等特性。 #### Mapper映射器与注解优先级 在Spring与MyBatis的整合中,Mapper接口被广泛使用。MyBatis允许通过注解或XML...
同时,我们还需要配置 MyBatis 的 SqlSessionFactory 和 SqlSessionTemplate,以便在多数据源环境中正确地执行 SQL 语句。 总结来说,这个项目组合利用 `SpringBoot` 的自动化配置,简化了应用的构建;通过 `...
掌握MyBatis的基本使用后,你还可以深入学习其高级特性,如延迟加载(Lazy Loading)、动态SQL、缓存机制、MyBatis Generator自动生成代码等。在实际项目中,MyBatis不仅可以用于单表操作,还能处理多表联查、复杂...
这份文档会讲解如何将MyBatis集成到Spring环境中,包括使用Spring的DataSource、SqlSessionFactoryBean、TransactionManager等组件。同时,会介绍如何通过注解或XML配置来定义Mapper Bean,以及Spring的AOP事务管理...
10. **延迟加载**:MyBatis的延迟加载功能可以在真正需要数据时才进行加载,提高了应用的响应速度。 以上就是关于MyBatis的一些核心知识点,这些内容涵盖了MyBatis的基本使用和高级特性,有助于开发者深入理解和...
【SpringBoot+Spring+MyBatis-51问-面试用】 1. **SpringBoot** 是什么? SpringBoot 是一款 Java ...在面试中,可能会讨论如何集成MyBatis与SpringBoot,以及MyBatis的配置、映射器、SqlSession管理等方面的知识。
9. **第10章**:最后,可能会讨论一些高级主题,比如Spring的缓存支持(如使用Ehcache或Redis),以及Mybatis的延迟加载和缓存机制。此外,还可能涉及性能优化策略,如批处理操作和连接池的配置。 以上各章节的源码...
10. **Mybatis实战**:通过实际项目中的案例,学习如何集成Mybatis到Spring Boot或其它框架中,如何处理复杂查询,如何优化性能等。 "狂神说Mybatis"的笔记将全面解析以上知识点,并通过实例演示来帮助学习者掌握...
在项目中,MyBatis通常与其他框架结合使用,比如Spring框架,形成Spring MyBatis集成,以便更好地管理和控制事务。通过Spring的@Autowired注解,可以方便地注入SqlSessionTemplate或SqlSessionDaoSupport,实现DAO层...
10. **绑定期绑定**:Mybatis的另一个强大特性是延迟加载,也称为懒加载。当实体对象的某个属性未初始化时,只有在真正访问该属性时才会去数据库查询,从而提高效率。 通过学习和熟练掌握Mybatis中文版,开发者可以...
2. **配置文件**:在MyBatis中,主要的配置文件是`mybatis-config.xml`,其中包含了数据源、事务管理器、环境配置等信息。这个配置文件是整个MyBatis系统的基础。 3. **映射文件**:映射文件(如`UserMapper.xml`)...
在MyBatis中,可以通过配置`fetchType`属性来实现延迟加载。 示例: ```xml SELECT o.*, od.items_id, od.items_num FROM orders o LEFT JOIN orderdetail od ON o.id = od.orders_id ...
5. **MyBatis与Spring的整合**:介绍如何在Spring框架中配置MyBatis,以及如何使用Spring的@Autowired和@Scope注解。 6. **MyBatis的延迟加载(Lazy Loading)**:说明何时启用延迟加载,以及如何处理懒加载引起的N...
一级缓存默认开启,二级缓存需要手动开启,并且需要在配置文件中指定。 ### 四、MyBatis的配置详解 #### 4.1 配置文件结构 MyBatis的核心配置文件为`mybatis-config.xml`,主要包含以下节点: - `<settings>`:...
在实际使用MyBatis时,开发者需要在配置文件中指定数据源、事务管理器以及映射文件的位置。映射文件中定义了SQL语句和结果映射,允许SQL语句根据业务需求动态变化。MyBatis支持存储过程、动态SQL、一对一和一对多的...
Spring整合Mybatis,即在Spring框架中集成Mybatis,主要是通过配置sqlSessionFactory来完成,整合后可以实现事务管理以及DAO的简化操作。原始DAO开发方式在整合Spring后,需要通过SqlSessionFactoryBean获取...