在java中 如果要与数据库进行通讯,那么他必须遵守JDBC步骤一步一步来
1加载驱动
2获取连接
3产生一个操作数据库对象
4通过这个对象来操作数据库(如果是查询操作的话,还必须增加 操作结果集)
5释放资源(如 连接 等等)
6事务提交
Hibernate这个框架也是同样遵守了这个标准,但是在Hibernate中,它把第2、3、4步操作一起封装到了session对象中,而sessionfactory他就是专门用于产生session的一个静态的接口(你可以把它当做用于产生session的机器),
dao这是一种设计模式,用于解耦合,它只是一种解决方案,上面所有的JDBC和Hibernate操作需要在dao程序包中做,
如果一定要比的话,sessionfactory用于产生session,session只做了第2、3、4步操作
而dao层中包含全部数据访问操作。
dao是一个模式,sessionfactory是一个类两者没有什么可比性
但是sessionfactory和dao做的都是针对db的数据库操作
sessionfactory是指获得session的工厂
dao要做的是,不仅要拿到session和数据库连接而且要求dao能完成一系列针对实体的增加,删除,修改操作
dao数据库访问对象
是一种模式,个人感觉这就是一种思想,用面向对象的方式操作数据库
你可以自己写个dao类,也可以使用别人写的封装好的类
比如Hibernate,通过SessionFactory获得一个Session,操作Session实例就可以访问数据库
我觉得Hibernate的Session就是dao类,至于SessionFactory那就是通过工厂模式(又是一种模式)生成Session类
dao只是一种思想,Hibernate很好的实现了这种思想(个人观点)
能比吗?