说明:本实例通过Struts2+Spring+Hibernate三个框架的整合实现了对数据库信息最基本的CRUD操作,在前端页面用jQuery进行信息的展示实现基本功能。
开发环境MyEclipse8.5+Tomcat6.0+Mysql5.1+jdk1.6

 

其他工具版本:Struts2.1.8.1,Spring2.5,Hibernate3.3,Jquery1.5(jquery.validate.js等);有些工具版本会稍微升级,不会对整体项目有大的影响。
前端页面:Xhtml+css

另:页面,数据库和xml文件皆用UTF-8编码。

环境搭建

1、打开myeclipse,新建web project输入项目名称,项目名称为DyEnigma

2、先把spring整合进来,因为以后的hibernate要用到它的配置文件。我把spring的配置文件命名为spring.xml并把它放在了WEB-INF文件夹中,spring.xml文件内部的配置模板代码如下

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <beans xmlns="http://www.springframework.org/schema/beans"
 3     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
 4     xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
 5     xsi:schemaLocation="http://www.springframework.org/schema/beans
 6            http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
 7            http://www.springframework.org/schema/context
 8            http://www.springframework.org/schema/context/spring-context-2.5.xsd
 9            http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
10            http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">
11 </beans>

然后导入spring依赖包,这里简单的把名称罗列出来,aspectjrt.jar、aspectjweaver.jar、cglib-nodep-2.1_3.jar、common-annotations.jar、commons-logging.jar、spring.jar、log4j-1.2.15.jar,另外使用c3p0建立连接池,还要加入c3p0-0.9.1.2.jar包;这里spring采用扫描加注解的方式管理bean,在配置文件中加入代码
<context:component-scan base-package="cn.dy" />
以后建立的action,实体类,dao和service全部都会在cn.dy下面,以让spring根据各自的注解自动管理。

3、在spring配置文件里面配置数据源以及整合进hibernate,代码如下

 1 <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"
 2         destroy-method="close">
 3         <property name="driverClass" value="org.gjt.mm.mysql.Driver" />
 4         <property name="jdbcUrl"
 5             value="jdbc:mysql://localhost:3306/learn?useUnicode=true&amp;characterEncoding=UTF-8" />
 6         <property name="user" value="root" />
 7         <property name="password" value="123456" />
 8         <!--初始化时获取的连接数,取值应在minPoolSize与maxPoolSize之间。Default: 3 -->
 9         <property name="initialPoolSize" value="1" />
10         <!--连接池中保留的最小连接数。-->
11         <property name="minPoolSize" value="1" />
12         <!--连接池中保留的最大连接数。Default: 15 -->
13         <property name="maxPoolSize" value="300" />
14         <!--最大空闲时间,60秒内未使用则连接被丢弃。若为0则永不丢弃。Default: 0 -->
15         <property name="maxIdleTime" value="60" />
16         <!--当连接池中的连接耗尽的时候c3p0一次同时获取的连接数。Default: 3 -->
17         <property name="acquireIncrement" value="5" />
18         <!--每60秒检查所有连接池中的空闲连接。Default: 0 -->
19         <property name="idleConnectionTestPeriod" value="60" />
20     </bean>
21     <bean id="sessionFactory"
22         class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
23         <property name="dataSource" ref="dataSource" />
24         <property name="mappingResources">
25             <list>
26                 <value>cn/dy/bean/User.hbm.xml</value>
27             </list>
28         </property>
29         <property name="hibernateProperties">
30             <value>
31                 hibernate.dialect=org.hibernate.dialect.MySQL5Dialect
32                 hibernate.hbm2ddl.auto=update
33                 hibernate.show_sql=false
34                 hibernate.format_sql=false
35           </value>
36         </property>
37     </bean>

注意第五行的细节问题,另外,第26行的value是以后我们将要建立的hibernate配置文件,可以先不要添加,然后导入hibernate依赖包和mysql数据库连接包
antlr-2.7.6.jar、commons-collections-3.1.jar、dom4j-1.6.1.jar、ehcache-1.2.3.jar、ejb3-persistence.jar、hibernate3.jar、hibernate-annotations.jar、hibernate-cglib-repack-2.1_3.jar、hibernate-commons-annotations.jar、hibernate-entitymanager.jar、javassist-3.4.GA.jar、jta-1.1.jar、slf4j-api-1.5.2.jar、slf4j-log4j12.jar、mysql-connector-java-3.1.13-bin.jar。

4、接下来就是继续配置spring.xml把事务交给spring管理,很简单,在配置文件末尾加入两段代码:

<bean id="txManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
<!--使用基于注解方式配置事务 -->
<tx:annotation-driven transaction-manager="txManager" />

5、添加struts2支持,导入Commons-fileupload-1.2.1.jar,commons-logging-1.0.4.jar,freewarker-2.3.15.jar,ognl-2.7.3.jar,struts2-core-2.1.8.1.jar,struts-spring-plugin-2.1.8.1.jar,xwork-core-2.1.6.jar,commons-io-1.3.2.jar。

6、配置web.xml文件中spring和struts2关系,代码如下,(第11行,从struts2.1.3开始使用)

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
 3     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 4     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
 5     http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
 6     <context-param>
 7         <param-name>contextConfigLocation</param-name>
 8         <param-value>/WEB-INF/spring.xml</param-value>
 9     </context-param>
10     <listener>
11         <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
12     </listener>
13     <filter>
14         <filter-name>struts2</filter-name>
15         <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
16     </filter>
17     <filter-mapping>
18         <filter-name>struts2</filter-name>
19         <url-pattern>/*</url-pattern>
20     </filter-mapping>
21     <welcome-file-list>
22         <welcome-file>index.jsp</welcome-file>
23     </welcome-file-list>
24 </web-app>
25 

7、建立struts.xml文件放到src下,代码如下,第六行是默认的视图主题,避免JSP页面里面自动加入格式代码,第七行是指定由spring来进行action对象的创建。

1 <?xml version="1.0" encoding="UTF-8"?>
2 <!DOCTYPE struts PUBLIC 
3 "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" 
4 "http://struts.apache.org/dtds/struts-2.0.dtd">
5 <struts>
6     <constant name="struts.ui.theme" value="simple" />
7     <constant name="struts.objectFactory" value="spring" />
8 </struts>

另外struts.xml的其他配置见另一篇文章:【struts配置文件介绍


8、文件架构的创建:cn.dy.action、cn.dy.bean、cn.dy.dao、cn.dao.impl、cn.dy.service、cn.dy.service.impl;另外还有测试文件的所在包cn.dy.test、密码进行加密所用的类所在的包cn.dy.own。


9、打开mysql数据库,新建一个数据库命名为:learn。


到目前为止,环境结构已经搭建好了。下面就是环境的测试和数据库操作。


      此文部分内容来源网络。如有侵犯您的版权问题,请来消息至电子邮件DyEngima&163.com(&换成@),经核实后会在文章内部标明来源。
转载请注明来源http://www.blogjava.net/DyEnigma/
签名:有能力、有担当、有情义的人才能称之为男人,而不是由性别决定。