a、Mybatis 和 hibernate 不同,它不完全是一个 ORM 框架,因为 MyBatis 需要程序员自己编写 Sql 语句,不过 mybatis 可以通过 XML 或注解方式灵活配置要运行的 sql 语句,并将java 对象和 sql 语句映射生成最终执行的 sql,最后将 sql 执行的结果再映射生成 java 对象。
b、Mybatis 学习门槛低,简单易学,程序员直接编写原生态 sql,可严格控制 sql 执行性能,灵活度高,非常适合对关系数据模型要求不高的软件开发,例如互联网软件、企业运营类软件等,因为这类软件需求变化频繁,一但需求变化要求成果输出迅速。但是灵活的前提是 mybatis 无法做到数据库无关性,如果需要实现支持多种数据库的软件则需要自定义多套 sql 映射文件,工作量大。
c、Hibernate 对象/关系映射能力强,数据库无关性好,对于关系模型要求高的软件(例如需求固定的定制化软件)如果用hibernate 开发可以节省很多代码,提高效率。但是Hibernate 的缺点是学习门槛高,要精通门槛更高,而且怎么设计 O/R 映射,在性能和对象模型之间如何权衡,以及怎样用好 Hibernate 需要具有很强的经验和能力才行。总之,按照用户的需求在有限的资源环境下只要能做出维护性、扩展性良好的软件架构都是好架构,所以框架只有适合才是最好。
相关文章
- 07-0566、您所熟悉的软件测试类型都有哪些?请试着分别比较这些不同的测试类型的区别与联系
- 07-05python3.0与python2.0有哪些不同
- 07-05SEO和SEM的区别与联系有哪些?SEM和SEO是什么?
- 07-05SEO和SEM的区别与联系有哪些?SEM和SEO是什么?
- 07-05如何分表分库?业界有哪些常用方案?可能存在什么问题,hibernate与mybatis面试题
- 07-05cassandra中的ACID,与RDBMS中的事务有何不同?
- 07-05labview中层叠式顺序结构与平铺式顺序结构有什么不同?
- 07-05MyBatis常见面试题:通常一个Xml映射文件,都会写一个Dao接口与之对应,请问,这个Dao接口的工作原理是什么?Dao接口里的方法,参数不同时,方法能重载吗?
- 07-05销售员面对不同客户群体有哪些应对话术
- 07-05「微信小程序」有哪些冲击与机会?