内容来自《Java 程序员面试笔试宝典 第2版》

JDBC属于比较底层的数据库操作,在使用的时候首先连数据库,注册驱动和数据库信息,然后打开Connection,通过Statement对象执行SQL语句,返回的结果是通过ResultSet对象保存的,需要通过代码读取结果然后赋值给数据对象。在实际开发中一般不会直接使用JDBC。

Hibernate是建立在若干POJO通过XML映射文件(或注解)提供的规则映射到数据库表上的。可以通过POJO直接操作数据库的数据,Hibernate提供的是一种全表映射的模型,对数据库操作不需要开发人员写SQL语句,虽然这样很方便,但是缺乏灵活性,无法通过SQL进行性能优化。

MyBatis和Hibernate最大的区别是仍然需要开发者自己编写SQL,这样做的好处可以充分发挥SQL的优势。MyBatis可以通过XML或者注解来指定映射关系,并且提供了MyBatis Generator代码生成工具,可以通过读取数据表生成初始代码。