问答题 JDBC与Hibernate有什么区别
【正确答案】
【答案解析】Hibernate是JDBC的封装,采用配置文件的形式将数据库的连接参数写到XML文件中,至于对数据库的访问还是通过JDBC来完成的。
Hibernate是一个持久层框架,它将表的信息映射到XML文件中,再从XML文件映射到相应的持久化类中,这样可以使用Hihernate独特的查询语言Hibernate查询语言(Hibernate Query Language,HQL)了。Hibernate的HQL查询语句返回的是List<Object[.]>类,而JDBC通过statement返回的查询结果是ResultSet并且有时候需要自己封装到List中。另外一个重要区别在于,Hibernate具有访问层(DAO类层,DAO全称为Data Access Objeet数据访问接口,意为数据访问接口),该层是HQL查询语句唯一出现的位置,再往上层则不会出现查询语句,而JDBC可以随时连接随时访问,例如有100个类都有SQL查询语句,如果表名改变了,那么要使用JDBC的方式,就必须重写所有查询语句,而采用Hibernate的方式只需修改DAO层的类即可,因此Hibernate具有很好的维护性和扩展性。