学习使用idea搭建SSH框架,并实现一个简单的登录功能
Struts2和Hibernate是两个独立的框架,由于Spring提供了对象管理,切面编程等非常实用的功能,如果进行整合,将Struts2和Hibernate的对象交给Spring容器进行解耦合管理,不仅能大大增强系统的灵活性,便于功能的扩展,还能通过Spring提供的服务简化编码,减少开发工作量,提高开发效率。(需要注意的是:因为版本问题而引发的小问题不少,所以我们所采取的版本和所使用的类版本需要一致,这里我使用的是Spring-3.2,Struts2-2.3,Hibernate3,使用的数据库是oracle)
首先,附上一张项目结构图
实现Spring和Hibernate的整合
首先,在Spring配置文件中实现SessionFactory Bean
的定义:
方式一:导入hibernate配置文件
可以使用Spring提供的LocalSessionFactoryBean
,通过configLocation
属性为其指定Hibernate配置文件的位置。
实例代码如下:
<!-Spring头文件信息省略-->
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="configLocation">
<value>classpath:hibernate.cfg.xml<value>
</property>
</bean>
方式二:可以将Hibernate的配置信息编写在Spring配置文件中,可以省去独立的Hibernate配置文件,有利于配置信息的集中处理。使用的是LocalSessionFactoryBean的子类:AnnotationSessionFactoryBean
,这里我所配置的数据源是dbcp数据源,需要在项目添加commons-dbcp-1.4.jar和commons-pool-1.6.jar两个文件(具体的jar包就不放在这里了)
实例代码如下:
<!--配置dbcp数据源-->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"/>
<property name="url" value="jdbc:oracle:thin:@localhost:1521:orcl"/>
<property name="username" value="数据库用户名"/>
<property name="password" value="数据库密码"/>
</bean>
<!--配置SessionFactory-->
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<!--hibernate配置参数-->
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.Oracle10gDialect
</prop>
<prop key="hibernate.show_sql">tru