struts主要负责流程控制,也就是页面转向,同时对数据进行处理操作。但是它本身几乎不直接访问数据库,而是调用数据库操作类(一般名称中含有DAO)的相关方法。
hibernate主要负责数据的持久化操作,包括数据的增删查改。它直接对数据库进行操作(如果严格讲,它封装了JDBC,JDBC才是直接操作数据库)。
spring主要有IoC控制反转、AOP面向切面编程等构成,它让程序员针对接口编程,这样在修改功能模块实现代码的时候比较方便。并且因为依赖注入,让程序员不必自己去实例化对象。
三者的关系可以简单说类似与这样:
浏览器发送请求,struts接收到请求并调用某一个java接口的某个方法,spring将该接口的具体实现类实例化返回给struts中的方法调用。这个具体实现类中使用hibernate的方法去操作数据库。struts中逻辑处理完毕后,将结果转发给指定的forward,即转到其它URL
至于hibernate怎么去连接数据库的,有一个配置文件,一般把Hibernate的连接配置写在Spring的bean配置文件里面,名称默认为applicationContext.xml。你打开看,里面应该有个