MyBatis主要分为三层:接口层,核心层与基础层。 1.接口层 是通过提供的API作为数据库进行增/删/改/查,都是MyBatis的API。 2.核心层 是SQL预处理、SQL执行、结果映射。 1)SQL预处理:是对代码里的变量进行绑定,以及动态SQL生成; 2)SQL执行:是把生成好的SQL,通过JDBC驱动,传到对应的DB里执行,而且要负责网络通信的部分; 3)结果映射:是把数据库返回的结果从关系型数据转换成Java对象数据。 3.基础层 包括日志、事务管理、缓存、连接池、动态代理、配置解析。 1)日志:是做框架里面的日志输出以及SQL语句输出; 2)事务管理:是对 JDBC事物、数据库事物做管理; 3)缓存:能够把结果集缓存在JVM的内存内部。优点是比较快,缺点是会占用堆内存。有条件的情况下,建议用户多使用分布式缓存; 4)连接池:能够加速查询,提高性能; 5)动态代理:在用MyBatis编程时,核心是通过接口执行数据库查询。而Mapper接口本身是没有实现的,通过注解或者XML配置SQL语句,动态代理会在运行时生成代理,当调用Mapper接口时,转换成实际的SQL语句; 6)配置解析:因为MyBatis里面有存在大量配置,需要配置新模块,读取XML配置,并把它映射为配置属性。
答复内容摘自《深入MySQL实战》,这本电子书收录开发者藏经阁 下载连接:https://developer.aliyun.com/topic/download?id=1167
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。