简述Mybatis的关联映射和缓存机制
时间: 2024-08-12 22:09:09 浏览: 75
Mybatis是一个流行的持久层框架,它提供了强大的SQL查询能力以及关联映射和缓存机制,帮助开发者高效地操作数据库。
**关联映射**:
- **一对一映射**:当一个实体类只对应数据库中的一个表的一条记录,并且这个实体只有一个关联对象时,使用一对一映射。通过`<one-to-one>`标签定义。
- **一对多映射**:一个实体类对应数据库中多个表,或一个实体类包含多个子实体,使用`<association>`或`<collection>`标签。
- **多对多映射**:通过中间表来实现,Mybatis会自动生成JOIN语句,或者手动配置`<many-to-many>`标签。
**缓存机制**:
- **一级缓存**:默认开启,作用于Session级别,同一个Session内的查询结果会被缓存起来,如果后续查询相同的SQL,将直接从缓存中获取,无需再次执行数据库查询。
- **二级缓存**:可以开启全局的二级缓存,不同Session间的相同查询结果会被存储到这个缓存中,减少网络请求和数据库查询。
- **自定义缓存**:通过配置`<cache>`标签,可以设置更细致的缓存策略,如指定缓存的TTL(过期时间)和缓存更新策略。
相关问题
mybatis 面试
好的,请问你的问题是什么?
问题:请简述 MyBatis 的原理和优缺点。
回答:MyBatis 是一款优秀的持久层框架,它对 JDBC 的操作数据库的过程进行了封装,使得开发者只需要关注 SQL 本身,而不需要花费精力去处理例如注册驱动、创建连接、创建 Statement、手动设置参数、结果集检索等 JDBC 繁杂的过程代码。MyBatis 通过 XML 或注解的方式将要执行的各种 statement 配置起来,并通过 Java 对象和 statement 中的 SQL 进行映射生成最终执行的 SQL 语句,最后由 MyBatis 框架执行 SQL 并将结果映射成 Java 对象并返回。
MyBatis 的优点:
1. 简化了 JDBC 的操作,使得开发者可以将精力集中在 SQL 语句本身的编写上。
2. 提供了映射标签,支持对象与数据库的 ORM 字段关系映射。
3. 提供了动态 SQL 标签,可以根据条件拼接 SQL 语句,提高了 SQL 的灵活性。
4. 提供了缓存机制,可以提高查询效率。
5. 可以与 Spring 等框架无缝集成。
MyBatis 的缺点:
1. 需要开发者手写 SQL 语句,对于不熟悉 SQL 的开发者来说可能会增加学习成本。
2. XML 配置文件较多,维护成本较高。
3. 对于复杂的关联查询,需要手动编写 SQL 语句,增加了开发难度。
阅读全文
相关推荐


















