Mybatis与Hibernate的比较

  • 量级:mybatis更轻量,上手简单, 插件丰富;而Hibernate比较重,精通较难
  • 自定义SQL:mybatis可以自己定义灵活的SQL;Hibernate也可以自定义sql,不过一般不推荐,而只是使用自带的sql语句支持
  • 缓存:mybatis缓存机制较差;Hibernate缓存集制较好可以避免脏读
  • 效率:mybatis需要自己编写sql,效率较慢,不过目前一些插件可以自动生成一些预设的SQL,面对复杂业务还需要自己编写SQL;Hibernate开发效率较高,DAO层简单,支持JPA
  • 数据库无关性:mybatis强依赖数据库类型,对一种数据库编写的SQL不能用于另一种数据库;Hibernate高度解耦,自带JDBC实现,只需指定数据库类型
  • 映射:mybatis需要指定java对象与SQL之间的映射关系,需要将返回字段映射到java对象上,本质上是面向数据表编程;Hibernate不需要定义XML文件来指定Java对象和数据库表的映射关系,自动生成和执行SQL
  • 分库分表:mybatis对分库分表支持较好而Hibernate对分库分表支持就比较坑

你可能感兴趣的:(数据库,Java基础)