相同点:
1. 都是通过xml建立sessionFactory,mybaits叫(sqlsessonFactory),然后得到session
2. 都有一级缓存和二级缓存,session为一级缓存
hibernate二级缓存为sessionFactory,session共享
myBatis二级缓存为package,不同session可以
不同点:
1. Hibernate有hql语句,执行查询并封装对象非常方便,myBatis需要自己处理ResultMap,比较复杂。
2. Hibernate的hql语句具有数据库无关性,会自动拼凑为响应数据库的sql语句,mybatis需要根据数据库的不同修改不同的sql语句。
3. Hibernate默认查询全部字段,否则就破坏hibernate的对象封装性,mybaits自己定义要查询的字段,性能好。
4. Hibernate事物默认不开启,需要自己手动提交,MyBatis自动开启事物。
5. Hibernate映射关系需要配置较多,不容易上手,MyBatis容易上手。
1. 都是通过xml建立sessionFactory,mybaits叫(sqlsessonFactory),然后得到session
2. 都有一级缓存和二级缓存,session为一级缓存
hibernate二级缓存为sessionFactory,session共享
myBatis二级缓存为package,不同session可以
不同点:
1. Hibernate有hql语句,执行查询并封装对象非常方便,myBatis需要自己处理ResultMap,比较复杂。
2. Hibernate的hql语句具有数据库无关性,会自动拼凑为响应数据库的sql语句,mybatis需要根据数据库的不同修改不同的sql语句。
3. Hibernate默认查询全部字段,否则就破坏hibernate的对象封装性,mybaits自己定义要查询的字段,性能好。
4. Hibernate事物默认不开启,需要自己手动提交,MyBatis自动开启事物。
5. Hibernate映射关系需要配置较多,不容易上手,MyBatis容易上手。