9.1 谈谈你对Mybatis的理解
难度:★★
重点:★★
白话解析
说清楚Mybatis是什么,它的工作流程,然后再对比一下Hibernate就好了。
1、Mybatis是什么:它一个半自动ORM框架,它底层把JDBC那套加载驱动、创建连接、创建statement等重复性的硬编码全部给你封装好了,程序员只需要关注业务SQL就行了,不需要自己去重新写JDBC那套代码。它支持定制化的SQL、存储过程以及高级映射。
MyBatis 使用XML或注解来配置和映射原生信息,将 POJO映射成数据库中的记录,避免了JDBC代码手动设置参数以及获取结果集的繁琐步骤。
2、工作流程:
-
第一步:要知道连哪个数据库——读取MyBatis配置文件(mybatis-config.xml),这个配置文件就是配置一些全局信息的,例如数据库的连接啊、类型的别名啊、插件啊等。
-
第二步:要知道执行哪些SQL——加载乱七八糟的XXXMapper.xml文件。
-
第三步:Java操作数据库肯定封装了Java对象的,这些对象要通过工厂去创建——构造会话工厂,通过SqlSessionFactoryBuilder().build方法创建SqlSessionFactory。
-
第四步:由会话工厂创建SqlSession对象,该对象中包含了执行SQL语句的所有方法。
-
第五步:在执行SqlSession的时候,底层定义了一个Executor接口来操作数
这篇博客详细探讨了Mybatis的各个方面,包括其作为半自动ORM框架的工作原理,与Hibernate的对比,参数传递方式(如#{}和${}的区别),结果集映射(resultType和resultMap),SQL id的处理,以及一对一、一对多查询的实现。此外,还介绍了Mybatis的分页查询方法(如limit、Interceptor和PageHelper插件)和延迟加载支持。最后,讨论了一级缓存和二级缓存的概念及其应用场景。
订阅专栏 解锁全文
3184

被折叠的 条评论
为什么被折叠?



