至于Hibernate,它实际上底下仍然是使用jdbc的api,通过各种sql语句进行数据库操作。比如你让一个类的对象存到数据库中,实际上hibernate底下还是用了insert语句,只是它包装的让你看不到实际的sql语句操作而已。而这个时候,因为hibernate只是面向jdbc的api进行编写的,至于怎么让jdbc的api能够实际的对某种数据库进行操作,就需要jdbc的驱动了。
简单说,就是hibernate底下是直接使用jdbc的api接口进行的编程,然后操作具体的某种数据库时候,jdbc的api接口需要针对这个具体数据库系统的实现,即特定的jdbc驱动了。
hibernate连接数据库在底层用的还是jdbc,只不过它对jdbc做了一个封装,更便于使用,hibernate的运行流程:
1:读取配置文件
2:创建sessionFactory
3:创建session
4:创建事务
5:持久化操作
6:提交事务
7:关闭session
8:关闭sessionFactory
hibernate开销大啊,最简单的思路,功能多,一定占内存,
但一般情况下,hibernate对很多访问进行了缓存,进行了很多优化,占内存多,但性能不错,
自己来用jdbc的话,小项目无所谓了,大项目下性能往往不如hibernate,因为没有hibernate优化的好.
hibernate 是帮助JAVA---DB之间的对象映射、存储、缓存等。
JDBC是Hibernate --- DB 之间的通讯,各厂商的DB都有不同的协议、标准,事实上,驱动就是将JDBC---DB之前的通讯。