Mybatis

(1)Java程序都是通过JDBC (Java Data Base Connectivity)连接数据库的,这样我们就可以通过SQL对数据库编程。
JDBC是由SUN公司(SUN公司后被Oracle公司收购)提出的一系列规范,但是它只定义了接口规范,而具体的
实现是交由各个数据库厂商去实现的,因为每个数据库都有其特殊性,这些是Java规范没有办法确定的,所以JDBC
就是一种典型的桥接模式。

(2)但是Hibernate有缺陷吗?当然有,世界上没有完美无缺的方案。作为全表映射框架,
举个例子来说,如果我们有张账务表(按年分表),比如2015年表命名为bill2015,到了
2016年表命名为bill2016,要动态加映射关系,Hibernate需要破坏底层封装才能做到。又
比如说,一些账务信息往往需要和某些对象关联起来,不同的对象有不同的列,因此列名
也是无法确定的,显然我们没有办法配置XML去完成映射规则。再者如果使用存储过程,
Hibernate也是无法适应的。这些都不是致命的,最为致命的问题是性能。Hibernate屏蔽了
SQL,那就意味着只能全表映射,但是一张表可能有几十到上百个字段,而你感兴趣的只
有2个,这是Hibernate无法适应的。尤其是在大型网站系统,对传输数据有严格规定,不
能浪费带宽的场景下就更为明显了。有很复杂的场景需要关联多张表,Hibernate全表逐级
取对象的方法也只能作罢,写SQL还需要手工的映射取数据,这带来了很大的麻烦。此外,
如果我们需要优化SQL, Hibernate也是无法做到的。

(3)Mybatis通过xml的方式创建sqlsessionFactory,然后sqlsessionFactory会创建sqlSession的会话

你可能感兴趣的:(Mybatis)