myBatis 简介
以前也接触过mybatis,但是只是会用,并不知道他有些地方是怎么实现的,最近出去面试,几乎每家公司都会问到mybatis,但是由于近期的开发一直都使用的是Hibernate,所以对mybatis方面就忘了很多,面试过程中不免打的有点差强人意,所以近期打算恶补一下Mybatis方面的知识。
与其它的数据库进行对比
1.jdbc,使用jdbc的话每一步都需要我们自己去使用java代码去写,这样就导致java代码与sql之间产生了强耦合关系,是不利于开发的。
--sql与java代码混合,耦合度高导致编码硬伤。
--维护不容易,并且在开发中需求中sql是易变的,频繁的改sql是经常发生的。
2.Hibernate,全自动的ORM轻量级框架,消除了sql,我们只关心javaBean与表数据之间的封装,但在实际开发中,我们需要的业务往往是比较复杂的,而hibernate的sql是在内部自动生成的,所以我们无法进行优化,而且如果需要写复杂的逻辑就需要学另外的语言hql语言。
--长难度复杂的sql对于hibernat来说并不容易。
--内部产生的sql不易优化。
--基于全映射的全自动化框架,大量的字段的pojo进行部分字段映射时比较困难。而导致数据库性能下降。
3.mybatis,半自动的轻量级框架,它将sql这块提取出来,以配置文件的形式分离,完美的与java代码进行分离,让中要的sql语句交给开发人员去写,也可以自己优化,形成了这种介于jdbc与hibernate之间的半自动化框架。