iBatis(mybatis)与Hibernate有什么不同?

一、iBatis(mybatis)与Hibernate有什么不同?

相同点:
  都是java中orm框架、屏蔽jdbc api的底层访问细节,所以我们不用与jdbc api打交道,就可以完成对数据库的持久化操作。jdbc api编程流程固定,还将sql语句与java代码混杂在了一起,经常需要拼凑sql语句,细节很繁琐。
  ibatis的好处:屏蔽jdbc api的底层访问细节;将sql语句与java代码进行分离;提供了将结果集自动封装称为实体对象和对象的集合的功能.queryForList返回对象集合,用queryForObject返回单个对象;提供了自动将实体对象的属性传递给sql语句的参数。

Hibernate的好处:Hibernate是一个全自动的orm映射工具,它可以自动生成sql语句,并执行并返回java结果。

不同点:
  1、hibernate要比ibatis功能强大很多。因为hibernate自动生成sql语句。
  2、ibatis需要我们自己在xml配置文件中写sql语句,hibernate我们无法直接控制该语句,我们就无法去写特定的高效率的sql。对于一些不太复杂的sql查询,hibernate可以很好帮我们完成,但是,对于特别复杂的查询,hibernate就很难适应了,这时候用ibatis就是不错的选择,因为ibatis还是由我们自己写sql语句。
  ibatis可以出来复杂语句,而hibernate不能。
  3、ibatis要比hibernate简单的多。ibatis是面向sql的,不同考虑对象间一些复杂的映射关系。

二、AOP是什么?你都拿它做什么?

AOP:面向切面编程
核心原理:使用动态代理的设计模式在执行方法前后或出现异常做加入相关逻辑。
  我们主要使用AOP来做:
  1、事务处理 执行方法前,开启事务、执行完成后关闭事务、出现异常后回滚事务。
  2、权限判断 在执行方法前,判断是否具有权限。
  3、日志 在执行前进行日志处理。
  4、…

猜你喜欢

转载自blog.csdn.net/faramita_of_mine/article/details/123974367
今日推荐