MyBatis和Hibernate的区别
来源:互联网 发布:excel数据有效性的来源 编辑:程序博客网 时间:2024/04/30 15:47
MyBatis和Hibernate的区别?
要根据项目需求去考虑究竟哪一个更适合项目开发,比如:一个项目中用到的复杂查询基本没有,就是简单的增删改查,这样选择hibernate效率就很快了,因为基本的sql语句已经被封装好了,根本不需要你去写sql语句,这就节省了大量的时间,但是对于一个大型项目,复杂语句较多,这样再去选择hibernate就不是一个太好的选择,选择mybatis就会加快许多,而且语句的管理也比较方便
Hibernate的查询会将表中的所有字段查询出来,这一点会有性能消耗。Hibernate也可以自己写SQL来指定需要查询的字段,但这样就破坏了Hibernate开发的简洁性。而Mybatis的SQL是手动编写的,所以可以按需求指定查询的字段。
Mybatis由于所有SQL都是依赖数据库书写的,所以扩展性,迁移性比较差。Hibernate与数据库具体的关联都在XML中,所以HQL对具体是用什么数据库并不是很关心。
Hibernate与MyBatis都可以是通过SessionFactoryBuider由XML配置文件生成SessionFactory,然后由SessionFactory 生成Session,最后由Session来开启执行事务和SQL语句。其中SessionFactoryBuider,SessionFactory,Session的生命周期都是差不多的。
Mybatis中resultMap和resultType的区别
在MyBatis进行查询映射的时候,其实查询出来的每一个属性都是放在一个对应的Map里面的,其中键是属性名,
值则是其对应的值。当提供的返回类型属性是resultType的时候,MyBatis会将Map里面的键值对取出赋给resultType所指定的对象对应的属性。所以其实MyBatis的每一个查询映射的返回类型都是ResultMap,只是当我们提供的返回类型属性是resultType的时候,MyBatis对自动的给我们把对应的值赋给resultType所指定对象的属性,而当我们提供的返回类型是resultMap的时候,因为Map不能很好表示领域模型,我们就需要自己再进一步的把它转化为对应的对象,这常常在复杂查询中很有作用。
- Hibernate和MyBatis的区别
- Hibernate和MyBatis的区别
- MyBatis和Hibernate的区别
- Hibernate和MyBatis的区别
- Hibernate和Mybatis的区别
- MyBatis和Hibernate的区别
- mybatis和hibernate的区别
- Hibernate和mybatis的区别
- Hibernate和MyBatis的区别
- hibernate和mybatis的区别
- Hibernate和Mybatis的区别
- mybatis 和 hibernate 的区别
- mybatis和hibernate的区别
- mybatis和hibernate的区别
- hibernate和mybatis的区别
- mybatis和hibernate的区别
- Hibernate和MyBatis的区别
- mybatis和hibernate的区别
- CSS3
- Word2Vec (Part 1): NLP With Deep Learning with Tensorflow (Skip-gram)
- php框架学习CI(CodeIgniter)的经验分享
- java中数组的几种排序
- c++作业4
- MyBatis和Hibernate的区别
- Android 操作SQLite基本用法
- c语言赋值运算返回值
- 指针的指针 数组指针 指针数组
- leetcode 515. Find Largest Value in Each Tree Row
- pandas入门学习一
- 32位和16位指令集模式自动切换机制
- Broken Keyboard (a.k.a. Beiju Text) UVA
- jdbcUtil工具包