简答了解MyBatis与MyBatis和Hibernate有什么异同

1、MyBatis和Hibernate有什么异同
相同点:屏蔽JDBC API 的底层方问细节,使我们不用于JDBC API打交道就可以访问数据库
不同点:Hibernate是全自动的ORM映射工具,可以自动生成SQL语句,Mybatis需要在xml配置文件中写SQL语句;因为Hibernate是自动生成SQL语句的,在写复杂查询时,Hibernate实现比Mybatis复杂的多


2、简单介绍Mybatis的理解
Mybatis是一种‘半自动化’的ORM实现。Mybatis的着力点在POJO与SQL之间的映射关系;具体的SQL由程序员编写,通过映射文件,将SQL所需要的参数和返回的结果字段映射到制动POJO;相对于Hibernate的‘全自动’ORM机制而言,Mybatis以SQL开发的工作量和数据库移植上的让步,让系统设计提供更大的自由空间
3、Mybatis都有哪些Executor执行器,他们之间有什么区别
SimpleExecutor:每执行一次update或者select,就会开启一个statement对象,用完立即关闭statement对象
ReuseExecutor:执行update或select时,SQL作为key查找statement对象,存在就使用,不存在就创建,用完不关闭statement对象,放置在一个Map(String ,statement)中,供下一次使用
BatchExecutor:执行update(JDBC批处理不支持的select),将所有SQL添加到批处理中(add batch),等待统一执行(executeBatch),缓存多个statement对象,每个对象都要add batch之后在统一执行executebatch()批处理的
4、Mydatis是否支持延迟加载,原理是
Mybatis支持association关联对象和collection()关联集合对象的延迟加载,association是一对一,collection是一对多查询,在Mybatis配置文件中用lazy Loading Enable=true/false是否启用延迟加载
原理:使用CGLIB创建目标的代理对象,当调用目标方法时,进入拦截器方法
5、Mybatis能执行一对多,一对一的联系查询吗,有哪些实现方法
能,不止可以一对多,一对一还可以多对多,一对多
原理:
1、单独发送一个SQL去查询关联对象,赋给主对象,然后返回主对象 
2、使用嵌套查询,似JOIN查询,一部分是A对象的属性值,另一部分是关联对 象B的属性值,好处是只要发送一个属性值,就可以把主对象和关联对象查出
  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值