本次搭建为普通的javaweb项目,并未使用maven进行搭建,所以请先下载好响应的jar包
1、需导入的jar包括ssh所需的以及mysql的驱动包
第二步:在web.xml中配置spring的监听器以及struts2的过滤器
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
<!-- Spring的框架的核心监听器 -->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
</context-param>
<!-- Struts2的框架的核心过滤器的配置 -->
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
|
/*表示的是拦截所有请求,struts2拦截请求后获取struts.xml文件查找对应的action,然后再调用相应的action中的方法。
第三步:配置数据库文件在src下创建jdbc.properties文件
内容为
1
2
3
4
|
jdbc.driverClass=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/xxx?useUnicode=true&characterEncoding=utf-8
jdbc.username=xxx
jdbc.password=xxx
|
第四步:在spring的配置文件中加载数据库文件
1
2
|
<!-- 引入外部的属性文件 -->
<context:property-placeholder location="classpath:jdbc.properties" />
|
第五步:使用数据库配置文件的字段配置数据库连接池
1
2
3
4
5
6
7
|
<!-- 配置C3P0链接池 -->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="driverClass" value="${jdbc.driverClass}" />
<property name="jdbcUrl" value="${jdbc.url}" />
<property name="user" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
</bean>
|
第六步:将数据库连接池注入hibernate的数据库seesionFactory对象中,因为数据库是交由hibernate的seesionFactory对象进行管理的,配置与数据库相关的信息
1
2
3
4
5
6
7
8
9
10
11
12
13
|
<bean id="sessionFactory"
class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
<!-- 注入连接池 -->
<property name="dataSource" ref="dataSource" />
<!-- 配置Hibernate的属性 -->
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.format_sql">true</prop>
<prop key="hibernate.hbm2ddl.auto">create</prop>
</props>
</property>
|
第七部:配置事务管理器
1
2
3
4
5
6
7
|
<!-- 配置事务管理器 -->
<bean id="transactionManager"
class="org.springframework.orm.hibernate4.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
<!-- 开始注解事务 -->
<tx:annotation-driven transaction-manager="transactionManager" />
|
第八步:(可选)开启baseDao模式
1
2
3
4
5
6
7
8
9
|
<!-- 下面三个Bean的配置可有可无,但配置后用处更大,通常用于BaseDao类、其他Dao类或特殊工具类中 -->
<bean id="hibernateTemplate" class="org.springframework.orm.hibernate4.HibernateTemplate"
p:sessionFactory-ref="sessionFactory" />
<bean id="hibernateDaoSupport" class="org.springframework.orm.hibernate4.support.HibernateDaoSupport"
p:hibernateTemplate-ref="hibernateTemplate" abstract="true"/>
<bean id="sessionFactoryUtils" class="org.springframework.orm.hibernate4.SessionFactoryUtils" abstract="true"/>
|
然后呆baseDao的实现类中就可以这样子用了
1
2
3
4
5
6
7
8
9
10
|
private SessionFactory sessionFactory;
public SessionFactory getSessionFactory() {
return sessionFactory;
}
@Autowired
public void setSessionFactory(SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
}
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
|
@Repository("baseDAO")
@SuppressWarnings("all")
public class BaseDAOImpl implements BaseDAO {
private SessionFactory sessionFactory;
public SessionFactory getSessionFactory() {
return sessionFactory;
}
@Autowired
public void setSessionFactory(SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
}
private Session getCurrentSession() {
return sessionFactory.getCurrentSession();
}
public Serializable save(T o) {
return this.getCurrentSession().save(o);
}
public void delete(T o) {
this.getCurrentSession().delete(o);
}
public void update(T o) {
this.getCurrentSession().update(o);
}
public void saveOrUpdate(T o) {
this.getCurrentSession().saveOrUpdate(o);
}
public List find(String hql) {
return this.getCurrentSession().createQuery(hql).list();
}
public List find(String hql, Object[] param) {
Query q = this.getCurrentSession().createQuery(hql);
if (param != null && param.length > 0) {
for (int i = 0; i < param.length; i++) {
q.setParameter(i, param[i]);
}
}
return q.list();
}
public List find(String hql, List
|
转载请注明原文链接:Eclipse搭建Struts2+Spring4+Hibernate4+MySql