mybatis的使用,mybatis的实现原理,mybatis的优缺点,MyBatis缓存,MyBatis运行的原理,MyBatis的编写方式
MyBatis 是一个 Java 持久层框架,用于简化数据库的操作。
MyBatis 的使用:
- 配置 mybatis-config.xml 文件,定义数据库连接、事务管理和其他设置。
- 创建 Mapper 接口和 Mapper XML 文件,定义 SQL 映射规则。
- 通过 SqlSessionFactory 和 SqlSession 来执行 SQL 操作。
MyBatis 实现原理:
- 解析配置文件:MyBatis 启动时会解析 mybatis-config.xml 配置文件和 Mapper XML 文件。
- 构建 SQL 会话工厂:通过 SqlSessionFactory 创建 SqlSession。
- 执行 SQL:通过 SqlSession 执行 Mapper 接口中定义的方法,MyBatis 内部使用 Mapper 代理或反射来调用相应的 SQL。
- 结果映射:将 SQL 查询结果映射到 Java 对象。
MyBatis 优点:
- 简单易学易用,与 SQL 语句紧密配合,对性能要求高的系统有良好表现。
- 提供缓存机制,减少数据库负担。
- 可以手动编写 SQL,提供了高度的灵活性。
MyBatis 缺点:
- 需要编写 SQL 语句,不够简单易用,对开发人员要求较高。
- 不支持复杂的关系模型,可能需要自己编写复杂的 SQL 语句。
- 不支持自动更新和删除,需要手动编写 SQL 语句。
MyBatis 缓存:
- 一级缓存:SqlSession 级别的缓存,本次 SqlSession 内有效。
- 二级缓存:mapper 级别的缓存,跨 SqlSession,需要配置。
MyBatis 运行原理:
- 加载配置文件:配置来源于 XML 或注解。
- 解析配置:创建 Configuration 对象。
- 创建 SqlSessionFactory:通过 Configuration 对象。
- 创建 SqlSession:通过 SqlSessionFactory 创建。
- 创建 Mapper 接口的代理对象:使用 Mapper Proxy 机制。
- 执行操作:通过代理对象调用 SQL 方法。
- 处理输入参数:通过 ParameterHandler 处理输入参数。
- 查找缓存:Executor 通过 Cache 查找缓存。
- 执行 SQL:通过 Statement 执行 SQL。
- 处理输出结果:通过 ResultSetHandler 处理输出结果。
- 存储缓存:Executor 更新 Cache。
- 返回结果:将结果返回给调用者。
评论已关闭