Hibernate对JDBC的封装程度比较高,不需要编写SQL(Structured Query Language)语句,只要使用HQL(Hibernate Query Language)语言就可以了。Hibernate模型的开发过程见下图:
与传统的JDBC相比,Hibernate的优势如下:
通过XML或注解的配置实现映射,无需管理数据库连接。
一个会话中,只要操作Session对象即可。释放资源时只需要关闭Session。
......
Hibernate的缺陷如下:
全表映射,HQL性能较差,无法优化SQL语句。
不能有效支持存储过程。
所以,建议使用半自动映射框架MyBatis。之所以称它为半自动,是因为它需要手动提供POJO、SQL和映射关系。而全表映射的Hibernate只需要提供POJO和映射关系。
参考资料
《深入浅出MyBatis技术原理与实战》