大家好,请教大家概念问题,hibernate、c3p0、jdbc这三者是什么关系,
我的理解是:hibernate 是对jdbc的封装,可以面向对象(实体类)实现数据操作,jdbc就是java api提供的连接操作数据库的底层方法,而c3p0 是一个连接池工具(连接池的概念查了好多,我的理解就是一个合理管理connection连接的工具,资源更合理利用),是一个第三方工具吧,而ssh整合后,hibernate交给了spring管理,在spring配置文件中配置了hibernate以及c3p0连接池的信息,配置dataSource(c3p0数据库连接信息),再注入到sqlSessionFactory(hibernate),这样dao层继承HibernateDaoSupport 就可以使用hibernate的方法了,这底层也就是jdbc,而且是使用了连接池的jdbc操作数据库,请教大家我的理解对了几成,求大家指教
JDBC只是定义的标准接口,各种数据库有对JDBC的具体实现,都有一个实现包。建立连接是JDBC标准的一部分,连接池只是因为性能问题把建立连接这块独立出来,做了一个更好的实现,替代默认的简单实现。hibernate是面向使用者的,让使用者用对象就可以间接调用JDBC接口。hibernate,连接池,数据库实现包都是和JDBC接口进行交互,协作完成和数据库交互的工作。
你理解的很对,不错!