MyBatis 的优点和缺点有哪些?

MyBatis主要的优点有:

  1. 持久层与上层分离明显。通过XML或注解的方式,将SQL交给MyBatis执行。
  2. 简单易学。SQL写在XML中, Java对象和SQL之间的映射也很容易。
  3. 符合Java的面向对象思想,用对象将 Domain Layer 映射到 Database Layer。
  4. 定义映射文件灵活。映射文件基于XML,可以被修改和继承。
  5. sql执行效率高。Mybatis利用 preparedStatement 来提高性能。
  6. 对 statement 执行进行了封装,便于应用和理解。
  7. 支持绝大部分的数据库。Mybatis 本身并不依赖于任何特定数据库和DBMS,IBatis 可以很轻松的移植到任何数据库系统。

MyBatis主要的缺点有:

  1. 入门难度高,使用XML等形式会增加学习难度和维护成本。
  2. 没有视频支持。Mybatis 相对于一些成熟的 ORM 框架,缺乏视频学习资料来支持自身。
  3. 没有条件构建函数。Mybatis 不支持使用条件构建函数(IF,CASE WHEN等)。
  4. 版本迭代缓慢。Mybatis 长久没有维护,历史版本没有向下兼容。
  5. 遗留问题多。Mybatis 存在较多的 bugs,尤其是关于缓存的实现。

总的来说,Mybatis是一个功能强大,性能高效的ORM框架,但相比其他ORM来说学习成本较高,版本迭代也相对缓慢。但如果能克服初始门槛,Mybatis仍然是一个不错的选择。