Mybatis(Object relation mapping)
JDBC
1. 不支持线程池,每次连接数据库的开销较大
2. sql需要写在代码中,返回结果的处理需要硬编码,修改后需要整体编译
3. 五步:加载驱动->创建连接->创建statement->执行sql->解析结果
MYBATIS
是一个封装了JDBC的对象关系映射框架,相比于原生的jdbc,节省了大量的重复性操作。从加载驱动到解析结果中,仅仅需要将必须的数据库配置信息、对象信息。
但同时,又提供了相当一部分的灵活性,可以在不同的业务场景下允许架构人员进行灵活的扩展。
可以使用xml或者注解配置或者映射原生信息,以对象作为参数动态生成执行sql,再通过映射获取结果对象。
Mybatis 官方网址
可关注点,一般这些也是比较常用的点
优点
相对于jdbc,节省大量的编码与精力,专注于sql。
基于jdbc的封装框架,所以可以很好的兼容数据库。
非常容易的与spring集成
提供xml便签,对象关系映射,面向表结构编程、灵活性高。
缺点
移植性差、sql语句编写量大。
适合场景
需求变化大、性能要求严格。
Hibernate/JPA
Hibernate、JPA与Mybatis的争论各有各的理由,具体的起因分析等,可以阅读下面的知乎回答。
为啥国人偏爱 Mybatis,而老外喜欢 Hibernate/JPA 呢?






