MyBatis主要的优点有:
- 持久层与上层分离明显。通过XML或注解的方式,将SQL交给MyBatis执行。
- 简单易学。SQL写在XML中, Java对象和SQL之间的映射也很容易。
- 符合Java的面向对象思想,用对象将 Domain Layer 映射到 Database Layer。
- 定义映射文件灵活。映射文件基于XML,可以被修改和继承。
- sql执行效率高。Mybatis利用 preparedStatement 来提高性能。
- 对 statement 执行进行了封装,便于应用和理解。
- 支持绝大部分的数据库。Mybatis 本身并不依赖于任何特定数据库和DBMS,IBatis 可以很轻松的移植到任何数据库系统。
MyBatis主要的缺点有:
- 入门难度高,使用XML等形式会增加学习难度和维护成本。
- 没有视频支持。Mybatis 相对于一些成熟的 ORM 框架,缺乏视频学习资料来支持自身。
- 没有条件构建函数。Mybatis 不支持使用条件构建函数(IF,CASE WHEN等)。
- 版本迭代缓慢。Mybatis 长久没有维护,历史版本没有向下兼容。
- 遗留问题多。Mybatis 存在较多的 bugs,尤其是关于缓存的实现。
总的来说,Mybatis是一个功能强大,性能高效的ORM框架,但相比其他ORM来说学习成本较高,版本迭代也相对缓慢。但如果能克服初始门槛,Mybatis仍然是一个不错的选择。