前言
Mybatis是一款半ORM框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。
ORM
ORM(对象关系映射)其实是对jdbc的一种封装使用,将业务代码和数据库操作隔离解耦,使得我们不需要注重JDBC的各种操作,直接操作对象完成对数据的交互。
JDBC
jdbc==>Java Database connect,也就是Java数据库连接,是一套Java操作数据库的基准API,JDBC现在已经算是底层的东西了,它的具体原理就不深入了,下面简单画图说明一下jdbc的使用流程:
小结
之前每次操作数据库的时候,都需要执行一遍jdbc的流程,为了简化开发(说白了就是懒),ORM就此出现了,mabatis就是半ORM框架,为啥是半ORM?刚刚我们提到ORM是对象关系映射,我们操作对象来实现操作数据库,相较于hibernate直接对象绑定的标准ORM框架而言,mybatis的sql需要我们自己写。
Mybatis简介
Mybatis的优点
- 易上手: 小巧无依赖,简单使用只需要引入jar包然后配置几个映射文件就行。
- 灵活: mybatis是半ORM框架,sql自己写,也就意味着可以灵活的根据业务需要写出自己想要的各种复杂sql。
- 规范化管理: sql写在xml文件里,便于统一管理,程序代码也不需要书写复杂的各式各样的sql
- 解除耦合: sql写在xml文件里,意味着代码只需要控制接口的输入和输出即可,不需要关注xml中具体的sql写法与实现,甚至当数据库字段甚至业务发生变化时候,可以不改动程序代码只修改sql。
Mybatis的缺点
- 业务庞大时,sql的编写工作量很大,对开发人员编写sql的能力有一定要求。
- sql中涉及的方言可能并不适用其他数据库,移植性比较差,为解决这个问题,需要识别数据库类型,加载不同的方言。