MyBatis
其实就是IBatis3.0
以后的版本
一个非常优秀的持久化层框架,持久化层就是跟数据库交互的框架
我们以前学过
- JDBC→Dbutils(QueryRunner)→jdbcTemplate:这些都只能算是小工具
这是我们用工具要走的步骤,工具功能简单,sql语句编写在java代码里面,这就导致了如果你想要修改一个sql语句的话,你就必须在项目中找到源码sql所在的位置,再修改sql语句,改掉以后整个项目再重新编译,打包,部署,运行一连串操作,这是很烦人的,这种硬编码,高耦合的方式我们是不推荐的
- 框架:算一个整体的解决方案
- 学过的框架有:
Hibernate
:全自动全映射ORM(Object Relation Mapping)框架
- Object(对象) Relation(关系) Mapping(映射)
Hibernate
的缺点:
- SQL语句是
Hibernate
自动帮你发的,不用你编写,这样就导致你想优化sql语句很麻烦,这是第一点 - 第二点:有些复杂的查询我们需要自己定制地写sql语句,不用框架自己写的,这就要用到
Hibernate
中的HQL语句了,而且还要求你对HQL语句了解得非常透彻 - 第三:基于全映射的全自动框架,大量字段的POJO进行部分映射时比较困难。 导致数据库性能下降
- SQL语句是
- 希望:sql语句交给我们开发人员编写,这样不会失去sql语句的灵活性
- 学过的框架有:
- MyBatis(半自动框架)
- 把编写sql提取出来,弄成一个配置文件的方式让开发人员编写,剩下的预编译,设置参数,执行sql,封装结果就由MyBatis自动完成
- 好处:
- sql与java编码分离,配置文件只解决我们跟数据库里数据记录映射的领域,只解决数据交互,而剩下的业务逻辑则由java编码负责,功能边界清晰,一个专注业务、 一个专注数据
- sql是开发人员控制,便于优化定制,不用学其他的例如HQL之类的东东,只要会sql语句就可以了