在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层中包含全部数据访问操作。