Struts2+Spring2+Hibernate3的SSH整合框架开发的一个数据库访问的实例

    这几天一直在自学捣鼓SSH,所遇到的问题很多,自己也总结了不少,废了一些功夫,写的一个连接MySQL数据库的连接实例。其实SSH架构无非就以下几个操作。熟悉了之后倒是很容易实现的。

    1.搭建Struts2+Spring2+Hibernate3的开发环境,也就是导包,这里不建议直接使用myeclipse自带的搭建包,原因就是,自带的架包有冲突,而且自带包如果不选择复制到WEB-INF下的lib目录的话,就不能直接在myeclipse里面移除包了。对我这种菜鸟来说,自己搭建环境才是对的。

    2.编写所需要的POJO类,DAO组件类,逻辑业务组件类以及Action类。

    3.配置Sping配置文件applicationContext.xml

    4.配置Hibernate映射文件“POJO类名”.hbm.xml

    5.配置Struts2配置文件struts.xml

    6.编写测试用的jsp页面。

    下面给出详细的步骤

    搭建环境应该是最麻烦的一点,因为如果是使用myeclipse自带的架包的话,就要将spring-core下的三个asm包移除,因为这三个asm包与hibernate下的asm包冲突了。之后就要引入struts2所需的包,最后引入的就是struts2-spring-plugin-2.1.6.jar这个包,是用来整合Struts2和Spring的。

aopalliance.jar
aspectjlib.jar
aspectjrt.jar
aspectjweaver.jar
c3p0-0.9.1.2.jar
cglib-nodep-2.1_3.jar
commons-attributes-api.jar
commons-attributes-compiler.jar
commons-codec.jar
commons-dbcp.jar
commons-fileupload.jar
commons-httpclient.jar
commons-io.jar
commons-lang.jar
commons-logging.jar
commons-pool.jar
freemarker.jar
iText-2.0.7.jar
jasperreports-2.0.5.jar
jotm.jar
jxl.jar
log4j-1.2.15.jar
persistence.jar
poi-3.0.1.jar
portlet-api.jar
spring-agent.jar
spring-aop.jar
spring-aspects.jar
spring-beans.jar
spring-context.jar
spring-core.jar
spring-jdbc.jar
spring-orm.jar
spring-tomcat-weaver.jar
spring-tx.jar
spring-web.jar
spring-webmvc-portlet.jar
spring-webmvc-struts.jar
spring-webmvc.jar
struts.jar
velocity-1.5.jar
velocity-tools-view-1.4.jar
xapool.jar
antlr-2.7.6.jar
asm-attrs.jar
asm.jar
cglib-2.1.3.jar
commons-collections-2.1.1.jar
commons-logging-1.0.4.jar
dom4j-1.6.1.jar
ehcache-1.2.3.jar
ejb3-persistence.jar
hibernate-annotations.jar
hibernate-commons-annotations.jar
hibernate-entitymanager.jar
hibernate-validator.jar
hibernate3.jar
jaas.jar
javassist.jar
jaxen-1.1-beta-7.jar
jboss-archive-browsing.jar
jdbc2_0-stdext.jar
jta.jar
log4j-1.2.11.jar
mysql-connector-java-5.1.6-bin.jar
xerces-2.6.2.jar
xml-apis.jar
struts2-spring-plugin-2.1.6.jar
commons-logging-1.1.jar
freemarker-2.3.13.jar
ognl-2.6.11.jar
struts2-core-2.1.6.jar
xwork-2.1.2.jar

所需的jar包的目录,很多,不过在我的网盘就有一份。http://pan.baidu.com/s/1gd1rzKB

 给出三个配置文件

Hibernate映射文件Product.hbm.xml

<?xml version='1.0' encoding='UTF-8'?>  

<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" 

"
http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd
">  

<hibernate-mapping>  

 <!-- 每个class对应一个持久化对象 -->

 <class name="com.lyb.po.Product">

  <!-- id元素用来定义主键标示,并制定主键生成策略 -->

  <id name="id">

   <generator class="assigned"></generator>

  </id>

  

  <!-- 定义其他属性 -->

  <property name="name"></property>

  <property name="price"></property>

 </class>

</hibernate-mapping>

Spring配置文件applicationContext.xml

一个常见的错误就是applicationContext.xml中的<bean>的id名称要与struts.xml的class的value值要一致,不然会出现404错误,因为action映射已经注入到Dao组件中,交给spring管理了

<?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">
 <!-- MySQL数据库连接实例 -->
 <bean id="db" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
  <property name="driverClassName"
   value="com.mysql.jdbc.Driver">
  </property>
  <property name="url"
   value="jdbc:mysql://localhost/webroot">
  </property>
  <property name="username" value="root"></property>
  <property name="password" value="lybcyy."></property>
 </bean>
 
 <!-- 设置sessionFactory -->
 <bean id="sessionFactory"
  class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
  <property name="dataSource">
   <ref bean="db" />
  </property>
  <property name="hibernateProperties">
   <props>
    <prop key="hibernate.dialect">
     org.hibernate.dialect.MySQLDialect
    </prop>
    <prop key="hibernate.show_sql">false</prop>
   </props>
  </property>
  
  <property name="mappingResources">
   <list>
    <value>Product.hbm.xml</value>
   </list>
  </property>
 </bean>
 
 <!-- 模板类HibernateTemplate,完成持久化操作 -->
 <bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate">
  <property name="sessionFactory">
   <ref bean="sessionFactory"/>
  </property> 
 </bean>
 
 <!-- 配置DAO组件,注入HibernateTemplate实例 -->
 <bean id="productDao" class="com.lyb.dao.ProductDaoImpl">
  <property name="hibernateTemplate">
   <ref bean="hibernateTemplate"/>
  </property>
 </bean>
 
 <!-- 配置业务逻辑组件 注入DAO组件 -->
 <bean id="productService" class="com.lyb.service.ProductServiceImpl">
  <property name="dao" ref="productDao"></property>
 </bean>
 
 <bean id="showAllAction" class="com.lyb.action.ShowAllAction">
  <property name="ps" ref="productService"></property>
  
 </bean>
 
 <!-- 注入addAction实例 -->
 <bean id="addAction" class="com.lyb.action.AddAction">
  <property name="ps" ref="productService"></property>
 </bean>
 
 <!-- 注入deleteAction实例 -->
 <bean id="deleteAction" class="com.lyb.action.DeleteAction">
  <property name="ps" ref="productService"></property>
 </bean>
 
 <!-- 注入updateAction实例 -->
 <bean id="updateAction" class="com.lyb.action.UpdateAction">
  <property name="ps" ref="productService"></property>
 </bean>
 </beans>

Struts2配置文件struts.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
  
     <package name="default" namespace="/" extends="struts-default">
        <action name="showAll" class="showAllAction">
         <!-- 定义处理结果与试图资源之间的关系 -->
         <result name="success">/show.jsp</result>
        </action>  
        
         <action name="add" class="addAction">
          <!-- 定义处理结果与试图资源之间的关系 --> 
         <result name="success" type="redirect">showAll.action</result> 
        </action>
        
         <action name="update" class="updateAction">
          <!-- 定义处理结果与试图资源之间的关系 -->
         <result name="success" type="redirect">showAll.action</result> 
        </action>
        
         <action name="delete" class="deleteAction">
          <!-- 定义处理结果与试图资源之间的关系 -->
          <result name="success" type="redirect">showAll.action</result> 
        </action>
    </package> 
    
</struts>项目部署

Struts2+Spring2+Hibernate3的SSH整合框架开发的一个数据库访问的实例

执行结果

Struts2+Spring2+Hibernate3的SSH整合框架开发的一个数据库访问的实例

你可能感兴趣的:(mysql,struts2,增删改,hibernate3,Sprng2,SHH整合)