一、创建web项目工程 wzz
点击finish
2、添加spring Jar包 AOP,Core,Persistence Core ,web jar
点击next
点击Finish
3、配置Database Driver
我使用的是JTDS jar包,jtds在配置url地址时与使用sql Seriver的url地址有点不太一样,然后直接点击Finish即可
4、添加hibernate 配置
点击next
选择使用Spring的applicationContext.xml,点击next
选择Existing Spring configuration file ,在填写SessionFactory ID ,点击next
点击next
不创建sessionFactory,使用spring的sessionFactory点击Finish
完成后
- <?xml version="1.0" encoding="UTF-8"?>
- <beans xmlns="http://www.springframework.org/schema/beans"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
- <bean id="dataSource"
- class="org.apache.commons.dbcp.BasicDataSource">
- <property name="driverClassName"
- value="net.sourceforge.jtds.jdbc.Driver">
- </property>
- <property name="url"
- value="jdbc:jtds:sqlserver://localhost:1433/wzdb">
- </property>
- <property name="username" value="sa"></property>
- <property name="password" value="123"></property>
- </bean>
- <bean id="sessionFactory"
- class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
- <property name="dataSource">
- <ref bean="dataSource" />
- </property>
- <property name="hibernateProperties">
- <props>
- <prop key="hibernate.dialect">
- org.hibernate.dialect.SQLServerDialect
- </prop>
- </props>
- </property>
- </bean>
- </beans>
这是application.xml自动添加的文件配置,
现在修改web.xml,
<!-- spring的应用上下文 -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/spring/applicationContext.xml</param-value>
</context-param>
<!-- spring的监听器,以便在启动时就自动加载spring的配置 -->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!-- 编码过滤 -->
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
------------------------------------------------------------------------------------------------------------------------------
用database Explorer视图,利用数据库中的表反射出实体类和实体类与数据库表的映射
选择项目及实体类和映射文件存放路径,点击next
在id Generator 中选择native
,主键生成方式为自动增长,点击finish,spring的配置文件applicationContext.xml中sessionFactory
bean会发生变化,新增<property
name="mappingResources"><list><value>com/aweb/entity/DicAnimal.hbm.xml</value>
</list></property>配置,把刚才反射时生成的实体类反射文件添加到sessionFactory的mappingResources中。
在applicationConext.xml中添加事务
<!-- 配置事务管理 -->
<bean id="transactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
<tx:advice id="txAdvice" transaction-manager="transactionManager">
<tx:attributes>
<!--propagation表示的是事务的传播特性,使用required时,是当检测到add开头的方法时,就看此时有没有开启的事务,如果有则将方法放进事务中去,如果没有,则新建一个事务。然后将方法放进去。-->
<tx:method name="save*" propagation="REQUIRED" />
<tx:method name="del*" propagation="REQUIRED" />
<tx:method name="update*" propagation="REQUIRED" />
<tx:method name="batch*" propagation="REQUIRED" />
<!--如果检测到其它的方法,则给其只读数据库的属性。即当本方法在读时,其它的方法不能再去写了。保证一个事务的完整性-->
<tx:method name="*" read-only="true" />
</tx:attributes>
</tx:advice>
asm-2.2.3.jar 与asm.jar有冲突,可以创新下载asm Jar包或把asm-2.2.3.jar删除也可
到此spring与hibernate集成已经完成。
配置strut2
添加struts2的Jar包 xwork-core-2.2.1.1.jar,struts2-core-2.2.1.1.jar,ognl-3.0.jar ,freemarker-2.3.16.jar
修改web.xml配置文件,增加struts2的过滤器配置
<!-- struts2过滤器 -->
<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.FilterDispatcher
</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
在src目录下新增struts.xml文件,struts2 spring hibernate配置完成
------------------------------------------------------------------------------------------------------------------------------------------------------
可以使用spring的HibernateDaoSupport类执行持久化操作:
package com.aweb.util;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
public class BaseDao<T> extends HibernateDaoSupport {
public void save(T t){
getHibernateTemplate().save(t);
}
}