No-Way|老狼's专栏

学习 总结 交流 共享

陶锐ID:taorui
14199次访问,排名8045(2)好友0人,关注者4
终于用10年的时间实现了自己的一个理想
taorui的文章
原创 9 篇
翻译 0 篇
转载 31 篇
评论 8 篇
taorui的公告
有空来我的空间里转悠
最近评论
sap99:http://www.sap99.com/
,SAP免费资料下载
SAP99资料多多

http://www.sap99.com

有很多的学习资料,推荐一下,
antonie1111:修改那个会提示这个错误了.
java.lang.ClassCastException: org.springframework.beans.factory.BeanDefinitionStoreException
org.codehaus.xfire.transport.http.XFireConfigurableServlet.loadConfig(XFireConf……
taorui:我比较赞同你的观点,我平时也是单独放到一个PO类包里的,上面这个转载的一个入门范例,仅供入门学习之用,估计作者本人写这个例子时也没考虑那么多,我们在开发中可以按照团队规划的目录结构来
taorui:谢谢你的评论,多多交流
taorui:请看本文的更新,希望能对你有所帮助
文章分类
收藏
    相册
    我的学位照
    Blog收藏
    水晶报表资源(RSS)
    职业顾问leo(RSS)
    My Favorites
    Clover(RSS)
    javaranch forum(RSS)
    Java天下(RSS)
    No-Way|老狼的个人图书馆(RSS)
    北京锐点软件工作室(RSS)
    工作流
    CWF(RSS)
    HongSoft@SOA(RSS)
    The Workflow Management Coalition (RSS)
    中国工作流论坛(RSS)
    你工作流了吗?(RSS)
    工作流技术论坛(RSS)
    开源框架
    JSF中文论坛(RSS)
    Spring中文论坛(RSS)
    SSH-Struts-Spring-Hibernate(RSS)
    推荐网站
    Java 研究组织(RSS)
    Java开发者(RSS)
    Java开源大全(RSS)
    Java解决之道(RSS)
    newxy新坐标(RSS)
    Sun技术社区(RSS)
    TheServerSide(RSS)
    UML软件工程组织(RSS)
    XML论坛(RSS)
    中国Eclipse插件资源中心(RSS)
    中国Eclipse社区(RSS)
    中国万维网联盟(RSS)
    中国项目管理网(RSS)
    灰狐(RSS)
    推荐专家
    Martin Fowler's Bliki 中文版(RSS)
    夏昕的专栏(RSS)
    青润心情(RSS)
    网络资源
    互联网技术应用(RSS)
    全库网-多功能查询站(RSS)
    存档
    软件项目交易
    订阅我的博客
    XML聚合  FeedSky
    订阅到鲜果
    订阅到Google
    订阅到抓虾
    订阅到BlogLines
    订阅到Yahoo
    订阅到GouGou
    订阅到飞鸽
    订阅到Rojo
    订阅到newsgator
    订阅到netvibes

    转载 Struts+Spring+Hibernate真正入门级实例收藏

    新一篇: J2EE 全面简介 | 旧一篇: spring hibernate struts整合开发实例

    网上有很多关于SSH架构的实例文章,但都显得复杂,我想,入门的朋友,还是希望从最简单的CRUD操作开始,一些复杂的数据库关系,逻辑关系,以后在项目中就能碰到,所以,本文定位于从零开始的一个SSH架构的例子,功能很简单,就是完成一个人员的CRUD操作,麻雀虽小,五脏俱全,希望能对从来没有接触过三者结合开发的朋友带来一点点帮助,这个例子,也算是我的入门实例,从此,开始Struts+Spring+Hibernate之旅 

    开发工具:MyEclipse5.1+Tomcat+Mysql

    开发前准备:数据库安装,tomcat安装,下载jar包这些就不费口水了,直接切入正题吧
    CREATE TABLE `people` (
      `id` int(11) NOT NULL auto_increment,
      `name` varchar(100) default NULL,
      `location` varchar(100) default NULL,
      PRIMARY KEY  (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=gb2312 ROW_FORMAT=COMPRESSED;

    首先,建立工程和package,以下是我的工程目录
      action
          DeletePeopleAction.java     //删除人员action
          EditPeopleAction.java         //编辑人员action第一步,读取需要修改的人员资料
          EditPeopleActionDo.java   //修改人员action
          ListPeopleAction.javaSave   //显示人员列表action
          SavePeopleAction.java         //新增人员action 
          SearchPeopleAction.java     //查找人员action
    dao
          IDAO.java    //数据库操作接口
          StudentDAOImpl.java  //数据库操作实现
    domain
          AbstractPeople.java   //实体抽象类
          People.hbm.xml         //数据库映射
          People.java                 //实体类
    service
          IService.java   //服务层接口
          StudentManagerImpl.java   //服务层实现
    util
         Character.java   //字符编码过滤器
         PageSupport.java   //分页
    applicationContext_hibernate.xml   //Spring配置文件(hibernate部分)
    applicationContext_service.xml      //Spring配置文件(Service部分)

    JSP:这几个jsp从名字就能看出功能,不说了
       addStudent.jsp
       editStudent.jsp
       searchList.jsp
       searchStudent.jsp
       studentList.jsp

     

    代码:
       

     applicationContext_hibernate.xml 
      

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">

    <beans>
    <!--  
        <bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
           <property name="jndiName">
              <value>java:comp/env/jdbc/StudentManager</value>
           </property>      
        </bean>
     
    -->
     
    <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        
    <property name="driverClassName">
          
    <value>com.mysql.jdbc.Driver</value>
        
    </property>
        
    <property name="url">
          
    <value>jdbc:mysql://localhost:3306/studentmanager</value>
        
    </property>
        
    <property name="username">
          
    <value>root</value>
        
    </property>
        
    <property name="password">
          
    <value>1234</value>
        
    </property>
        
     
    </bean>
     
     
    <bean id="TransactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
    <property name="dataSource">
    <ref bean="dataSource"/>
    </property>
    </bean> 
       
        
    <bean id="sessionFactory"
            class
    ="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
            
    <property name="dataSource">
                
    <ref local="dataSource" />
            
    </property>
            
    <property name="hibernateProperties">
                
    <props>
                    
    <prop key="hibernate.dialect">
                        org.hibernate.dialect.MySQLDialect
                    
    </prop>
                    
    <prop key="hibernate.show_sql">true</prop>
                    
    <prop key="hibernate.cache.use_query_cache">true</prop>
                    
    <prop key="hibernate.cache.provider_class">
                        org.hibernate.cache.HashtableCacheProvider
                    
    </prop>
                
    </props>
            
    </property>
            
    <!--  
            <property name="mappingDirectoryLocations">
                <list>
                    <value>classpath:/domain</value>
                </list>
            </property>
    -->
            
    <property name="mappingResources">
               
    <list>
                 
    <value>domain/People.hbm.xml</value>
               
    </list>
            
    </property>
        
    </bean>
        
        
    <bean id="StudentDAO" class="dao.StudentDAOImpl">
           
    <property name="sessionFactory">
             
    <ref local="sessionFactory"/>
           
    </property>
        
    </bean>
    </beans>

     

     applicationContext_service.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">

    <beans>

       
    <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
         
    <property name="sessionFactory">
           
    <ref bean="sessionFactory"/>
         
    </property>
       
    </bean>
       
       
       
    <bean id="studentManager" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
           
    <property name="transactionManager">
              
    <ref bean="transactionManager"></ref>
           
    </property>
          
    <property name="target">
              
    <bean class="service.StudentManagerImpl">
                
    <property name="studentDAO">
                    
    <ref bean="StudentDAO"/>
               
    </property>
              
    </bean>
          
    </property>
          
    <property name="transactionAttributes">
            
    <props>
              
    <prop key="save*">PROPAGATION_REQUIRED</prop>
              
    <prop key="list*">PROPAGATION_REQUIRED,readOnly</prop>
              
    <prop key="delete*">PROPAGATION_REQUIRED</prop>
              
    <prop key="get*">PROPAGATION_REQUIRED,readOnly</prop>
              
    <prop key="edit*">PROPAGATION_REQUIRED</prop>
              
    <prop key="search*">PROPAGATION_REQUIRED</prop>
           
    </props>
         
    </property>
        
    <property name="proxyTargetClass">
           
    <value>true</value>    
        
    </property>
         
       
    </bean>
       

    </beans>

     

     Web.xml

     

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee   http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
      
    <context-param>
        
    <param-name>contextConfigLocation</param-name>

        
    <param-value>
                     /WEB-INF/classes/applicationContext_service.xml,
                     /WEB-INF/classes/applicationContext_hibernate.xml
                                      
        
    </param-value>
      
    </context-param>
      
      
    <resource-ref>   
          
    <description>SqlServer   Datasource   example</description>   
          
    <res-ref-name>jdbc/StudentManager</res-ref-name>   
          
    <res-type>javax.sql.DataSource</res-type>   
          
    <res-auth>Container</res-auth>   
      
    </resource-ref>
      
      
    <filter>
            
    <filter-name>hibernateFilter</filter-name>
            
    <filter-class>
                org.springframework.orm.hibernate3.support.OpenSessionInViewFilter
            
    </filter-class>
            
    <init-param>
            
    <param-name>singleSession</param-name>
            
    <param-value>true</param-value>
            
    </init-param>
        
    </filter>
        
    <filter-mapping>
            
    <filter-name>hibernateFilter</filter-name>
            
    <url-pattern>*.do</url-pattern>
        
    </filter-mapping>

            
    <listener>
               
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
            
    </listener>
        
         

     
      
    <servlet>
        
    <servlet-name>action</servlet-name>
        
    <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
        
    <init-param>
          
    <param-name>config</param-name>
          
    <param-value>/WEB-INF/struts-config.xml</param-value>
        
    </init-param>
        
    <init-param>
          
    <param-name>debug</param-name>
          
    <param-value>3</param-value>
        
    </init-param>
        
    <init-param>
          
    <param-name>detail</param-name>
          
    <param-value>3</param-value>
        
    </init-param>
        
    <load-on-startup>0</load-on-startup>
      
    </servlet>
      
    <servlet-mapping>
        
    <servlet-name>action</servlet-name>
        
    <url-pattern>*.do</url-pattern>
      
    </servlet-mapping>
    </web-app>

    struts-config.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd">

    <struts-config>
      
    <data-sources />
      
    <form-beans>
        
    <form-bean name="people" type="domain.People"></form-bean>
      
    </form-beans>
      
    <global-exceptions />
      
    <global-forwards />
      
    <action-mappings >
        
    <action path="/savePeople" name="people" type="action.SavePeopleAction">
          
    <forward name="success" path="/listPeople.do"></forward>
        
    </action>
        
        
    <action path="/listPeople" name="people" type="action.ListPeopleAction">
          
    <forward name="success" path="/studentList.jsp"></forward>
        
    </action>
        
         
    <action path="/deletePeople" name="people" type="action.DeletePeopleAction">
          
    <forward name="success" path="/studentList.jsp"></forward>
        
    </action>
        
         
    <action path="/editPeople" name="people" type="action.EditPeopleAction">
          
    <forward name="success" path="/editStudent.jsp"></forward>
        
    </action>
        
         
    <action path="/editPeopleDo" name="people" type="action.EditPeopleActionDo">
          
    <forward name="success" path="/studentList.jsp"></forward>
        
    </action>
        
         
    <action path="/searchPeople" name="people" type="action.SearchPeopleAction">
          
    <forward name="success" path="/searchList.jsp"></forward>
        
    </action>

      
    </action-mappings>
      
    <controller contentType="text/html;charset=gb2312"
            processorClass
    ="util.Character" />
      
    <message-resources parameter="" />
    </struts-config>

     

     DeletePeopleAction.java

    /*
     * Generated by MyEclipse Struts
     * Template path: templates/java/JavaClass.vtl
     
    */

    package action;

    import java.util.ArrayList;
    import java.util.List;

    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;

    import org.apache.struts.action.ActionForm;
    import org.apache.struts.action.ActionForward;
    import org.apache.struts.action.ActionMapping;
    import org.springframework.web.struts.ActionSupport;

    import service.StudentManagerImpl;
    import domain.People;

    /** 
     * MyEclipse Struts
     * Creation date: 01-17-2007
     * 
     * XDoclet definition:
     * @struts.action validate="true"
     
    */

    public class DeletePeopleAction extends ActionSupport {

        
    public ActionForward execute(ActionMapping mapping, ActionForm form,
                HttpServletRequest request, HttpServletResponse response) 
    {
           
            
            Integer id
    =new Integer(request.getParameter("id"));
            StudentManagerImpl manager
    =(StudentManagerImpl)getWebApplicationContext().getBean("studentManager");
            manager.deletePeople(id);
         
            List studentList
    =manager.listPeople(0,5,"from People");
       
            request.setAttribute(
    "studentList", studentList);
            request.setAttribute(
    "currentPage"1);
            
    return mapping.findForward("success");
        }

    }

    EditPeopleAction.java
    /*
     * Generated by MyEclipse Struts
     * Template path: templates/java/JavaClass.vtl
     
    */

    package action;

    import java.util.ArrayList;
    import java.util.List;

    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;

    import org.apache.struts.action.ActionForm;
    import org.apache.struts.action.ActionForward;
    import org.apache.struts.action.ActionMapping;
    import org.springframework.web.struts.ActionSupport;

    import service.StudentManagerImpl;
    import domain.People;

    /** 
     * MyEclipse Struts
     * Creation date: 01-17-2007
     * 
     * XDoclet definition:
     * @struts.action validate="true"
     
    */

    public class EditPeopleAction extends ActionSupport {

        
    public ActionForward execute(ActionMapping mapping, ActionForm form,
                HttpServletRequest request, HttpServletResponse response) 
    {
           
            String id
    =request.getParameter("id");
        
            StudentManagerImpl manager
    =(StudentManagerImpl)getWebApplicationContext().getBean("studentManager");
            People people
    =(People)manager.getPeople(new Integer(id));
            
            request.setAttribute(
    "id", id);
            request.setAttribute(
    "name", people.getName());
            request.setAttribute(
    "location", people.getLocation());
            
            
    return mapping.findForward("success");
        }

    }

    EditPeopleActionDo.java
    /*
     * Generated by MyEclipse Struts
     * Template path: templates/java/JavaClass.vtl
     
    */

    package action;

    import java.util.ArrayList;
    import java.util.List;

    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;

    import org.apache.struts.action.ActionForm;
    import org.apache.struts.action.ActionForward;
    import org.apache.struts.action.ActionMapping;
    import org.springframework.web.struts.ActionSupport;