MyBatis面试题(三)
说说对ORM的理解? 答:ORM就是所谓的对象关系映射,通过这门技术,可以让程序中的实体对象和数据库的记录做到互相映射,对象可以借此持久化到数据库记录,数据库记录也能借此转化为实体对象。 为什么说Mybatis是半自动ORM映射工具?它与全自动的区别在哪里? 答:Hibernate就属于全自动ORM映射工具,因为使用Hibernate查询关联对象或者关联集合对象时,可以根据对象关系模型直接获取,所以它是全自动的。而 Mybatis在查询关联对象或关联集合对象时,需要手动编写sql来完成,所以,称之为半自动ORM映射工具。 你对MyBatis的一级缓存和二级缓存有了解吗,说一下? 答:MyBatis默认只开启一级缓存,一级缓存是对同一个SqlSession起作用,在使用SqlSession第一次查询后,MyBatis会将结果缓存起来,如果下次再使用同一个SqlSession调用Mapper方法,sql的参数也完全相同,如果没有声明需要刷新,同时缓存也没有超时,那SqlSession都会取出当前缓存的数据,而不会再次发送SQL到数据库做查询。 MyBatis的二级缓存是Application级别的缓存,它可以提高对数据库查询的效率,以提高应用的性能。SqlSessionFactory层面上的二级缓存默认是不开启的,二级缓存的开启需要进行配置,实现二级缓存的时候