相同点:都是ORM框架,对jdbc进行了封装。
不同点:iBatis需要手写sql,hibernate不需要手写sql,因此iBatis对程序员的sql功底要求高,对数据库的操作也更加灵活。
iBatis可以对sql进行优化,提高性能,hibernate的sql为自动生成,在sql优化方面会很麻烦。
iBatis的sql是手写的对多表的查询更加方便,而hibernate的连表查询需要拼复杂的HQL语句。
iBatis还可以使用数据库特有的特性,hibernate只能用标准的sql。
iBatis数据库的相关性强,在进行数据库移植时需要修改大量的sql,hibernate在数据库移植时与数据库基本无关。
ibatis的好处:屏蔽jdbc api的底层访问细节;将sql语句与java代码进行分离;提供了将结果集自动封装称为实体对象和对象的集合的功能,queryForList返回对象集合,用queryForObject返回单个对象;提供了自动将实体对象的属性传递给sql语句的参数。
Hibernate是一个全自动的orm映射工具,它可以自动生成sql语句,ibatis需要我们自己在xml配置文件中写sql语句,hibernate要比ibatis功能负责和强大很多。因为hibernate自动生成sql语句,我们无法控制该语句,我们就无法去写特定的高效率的sql。对于一些不太复杂的sql查询,hibernate可以很好帮我们完成,但是,对于特别复杂的查询,hibernate就很难适应了,这时候用ibatis就是不错的选择,因为ibatis还是由我们自己写sql语句。
远近互联技术-刘 整理发布,希望能对同是技术的你有所帮助。
远近互联专业提供网站建设、APP开发、网站优化、外贸网站SEO、微信运营的品牌整合营销服务,让客户通过网络品牌建立与网络传播提高业绩。