`
gstarwd
  • 浏览: 1525568 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Struts Spring Hibernate整合例子

    博客分类:
  • SSH
阅读更多

Struts Spring Hibernate
       
        本次配置环境:Myeclipse5.5、MySQL5.0、Struts1.2、Spring2.0、Hibernate3.1
       
        一、建工程
       
        略。。。。。。
       
        二、要使用Struts、Spring、Hibernate必须导入必需的包
       
        1、Struts(和之前没区别)
       
        2、Spring
       
        分别导入Spring 2.0 Core Libraries、Spring 2.0 Web Libraries
       
        选择把*.jar Copy到工程/WebRoot/WEB-INF/lib下; 点击NEXT
       
        选择applicationContext.xml的目录,/WebRoot/WEB-INF;点击finish
       
        3、Hibernate
       
        在导入Hibernate时,当然先要配置DataSource咯,这里就不再说了
       
        选择导入Hibernate全选上
       
        选上复选框:Hibernate 3.1 Core......、Hibernate 3.1 Advanced......、Spring 2.0 ORM/DAO.......
       
        同样选择把*.jar Copy到工程/WebRoot/WEB-INF/lib下; 点击NEXT
       
        这里我们选择把hibernate交给spring去管理
       
        选中单选按钮 Spring configuration file...... 点击NEXT
       
        选择已存在的applicationContext.xml文件,
       
        填写SessionFactory ID :sessionFactory 点击NEXT
       
        这里我们需要填写Bean Id :dataSource
       
        选择 DB Driver :选择刚才配置的DataSource 点击NEXT
       
        这里不需要创建 SessionFactory Class 点击Finish
       
        注意:查看applicationContext.xml的变化
       
        三、映射VO、数据操作
       
        首先工程的结构建好,比较简单的结构:
       
        org.chenwj.dao
       
        org.chenwj.struts
       
        org.chenwj.struts.action
       
        org.chenwj.struts.form
       
        org.chenwj.vo
       
        映射表userinfo创建持久类到org.chenwj.vo目录
       
        在dao下创建数据库操作类 UserDAO 这里只是对数据库进去插入,代码如下:
       
        private SessionFactory sessionFactory;
       
        public SessionFactory getSessionFactory() ...{
       
        return sessionFactory;
       
        }
       
        public void setSessionFactory(SessionFactory sessionFactory) ...{
       
        this.sessionFactory = sessionFactory;
       
        }
       
        /**//* 用户注册 */
       
        public boolean regist(Userinfo user) ...{
       
        try ...{
       
        Session session = sessionFactory.openSession();
       
        Transaction tx = session.beginTransaction();
       
        session.save(user);
       
        tx.commit();
       
        session.close();
       
        return true;
       
        } catch (Exception ex) ...{
       
        ex.printStackTrace();
       
        return false;
       
        }
       
        }
       
        使用依赖注入,setter设值 sessionFactory
       
        到此数据层已经完成
       
        四、配置struts-config.xml
       
        添加action、form、jsp 略……
       
        首先在struts-config.xml添加一个插件
       
        <plug-in
       
        className="org.springframework.web.struts.ContextLoaderPlugIn">
       
        <set-property property="contextConfigLocation"
       
        value="/WEB-INF/applicationContext.xml" />
       
        </plug-in>
       
        为什么要添回这个插件呢?
       
        因为在后面会在applicationContext.xml下配置action,让action交给spring
       
        去管理,实现了struts的依赖注入机制
       
        接下来添加cuntroller,这里你可以使用DelegatingActionProxy代理
       
        <controller processorClass=
       
        "org.springframework.web.struts.DelegatingRequestProcessor"/>
       
        Controller取代了struts的RequestProcessor,在定义action里,我们可以省略
       
        type属性。(我个人比较喜欢用这个)下面让我们看配置好的struts-config.xml:
       
        <struts-config>
       
        <data-sources />
       
        <form-beans>
       
        <form-bean name="userForm"
       
        type="org.chenwj.struts.form.UserForm" />
       
        </form-beans>
       
        <global-exceptions />
       
        <global-forwards />
       
        <forward name="success" path="/success.jsp" />
       
        <forward name="error" path="/index.jsp" />
       
        </action>
       
        </action-mappings>
       
        <controller processorClass=
       
        "org.springframework.web.struts.DelegatingRequestProcessor"/>
       
        <message-resources
       
        parameter="org.chenwj.struts.ApplicationResources" />
       
        <plug-in
       
        className="org.springframework.web.struts.ContextLoaderPlugIn">
       
        <set-property property="contextConfigLocation"
       
        value="/WEB-INF/applicationContext.xml" />
       
        </plug-in>
       
        </struts-config>
       
        五、在applicationContext.xml配置action
       
        这里我们先在 action类里添加一些业务逻辑,代码如下:
       
        public class UserAction extends Action ...{
       
        private UserDAO userDao;
       
        private Userinfo user;
       
        public ActionForward execute(ActionMapping mapping, ActionForm form,
       
        HttpServletRequest request, HttpServletResponse response) ...{
       
        UserForm userForm = (UserForm) form;
       
        //封装数据
       
        user.setName(userForm.getName());
       
        user.setPassword(userForm.getPassword());
       
        if(userDao.regist(user))...{
       
        return mapping.findForward("success");
       
        }
       
        return mapping.findForward("error");
       
        }
       
        public Userinfo getUser() ...{
       
        return user;
       
        }
       
        public void setUser(Userinfo user) ...{
       
        this.user = user;
       
        }
       
        public UserDAO getUserDao() ...{
       
        return userDao;
       
        }
       
        public void setUserDao(UserDAO userDao) ...{
       
        this.userDao = userDao;
       
        }}
       
        这里使用setter实现依赖注入了两个bean,接下来配置applicationContext.xml
       
        <beans xmlns="略……">
       
        <!—- 数据源
       
        <bean id="dataSource"
       
        class="org.apache.commons.dbcp.BasicDataSource">
       
        <property name="driverClassName"
       
        value="com.mysql.jdbc.Driver">
       
        </property>
       
        <property name="url"
       
        value="jdbc:mysql://localhost:3306/demo"></property>
       
        <property name="username" value="root"></property>
       
        <property name="password" value="root"></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.MySQLDialect
       
        </prop>
       
        </props>
       
        </property>
       
        <property name="mappingResources">
       
        <list>
       
        <value>org/chenwj/vo/Userinfo.hbm.xml</value>
       
        </list>
       
        </property>
       
        </bean>
       
        <bean id="userDao" class="org.chenwj.dao.UserDAO">
       
        <property name="sessionFactory">
       
        <ref local="sessionFactory" />
       
        </property>
       
        </bean>
       
        对应的 action path属性值相同,斜线也是必需的,通过这个属性scope=
       
        "prototype" 每次获取bean实例时都会产生新的实例,默认是单例
       
        <bean name="/user" class="org.chenwj.struts.action.UserAction"
       
        abstract="false" lazy-init="default" autowire="default"
       
        scope="prototype" dependency-check="default">
       
        <property name="userDao" ref="userDao" />
       
        <property name="user" ref="user" />
       
        </bean>
       
        <bean id="user" class="org.chenwj.vo.Userinfo" abstract="false"
       
        lazy-init="default" autowire="default"
       
        dependency-check="default">
       
        </bean>
       
        </beans>
       
        到此所有的配置已经完成,测试:
       
        HTTP Status 404 - Servlet action is not available
       
        The requested resource (Servlet action is not available) is not available
       
        这个错误是大部初学者整合 SSH 时都会遇到的问题
       
        首先建议你使用测试类进行测试,这样我们可以很快找到错误所在的地方
       
        public static void main(String[] args) ...{
       
        ApplicationContext context = new FileSystemXmlApplicationContext(
       
        "/WebRoot/WEB-INF/applicationContext.xml");
       
        UserDAO dao = (UserDAO)context.getBean("userDao");
       
        Userinfo user = new Userinfo();
       
        user.setName("aaa");
       
        user.setPassword("bbb");
       
        boolean a = dao.regist(user);
       
        if(a)...{
       
        System.out.println("OK");
       
        }
       
        }
       
        如果这里没出错,那么请你好好检查你的配置文件,是否写错或少了些什么东东了
       
        这里出的错误也跟使用的版本有关系,这里报的错一般都是说找不到XX类所报的异常
       
        那么请检查lib下有没commons-pool-1.2.jar包,如没请导入,这个问题也有可能是包
       
        之间的****,删除这个包hibernate-annotations.jar
       
        六、.sql文件、.jsp文件
       
        create table userinfo(
       
        id int(10) not null auto_increment,
       
        name varchar(20),
       
        password varchar(20),
       
        PRIMARY KEY   (id))
       
        <body>
       
        <html:form action="/user">
       
        name : <html:text property="name"/><br/>
       
        password : <html:password property="password"/><br/>
       
        <html:submit/><html:cancel/>
       
        </html:form>
       
        </body>

分享到:
评论

相关推荐

    SSH整合源码(Struts+Spring+Hibernate整合用户注册例子)

    SSH整合,全称为Struts、Spring和Hibernate的集成,是一种常见的Java Web开发框架组合,用于构建高效、可维护的企业级应用程序。在这个例子中,我们看到的是一个基于SSH的用户注册功能的实现,使用的开发工具是...

    Struts Spring Hibernate整合实践

    Struts Spring Hibernate整合实践是Java Web开发中常见的一种技术栈整合方式,主要用于构建高效、松耦合的企业级应用。这个整合实践文档详细介绍了如何在2007年的环境下配置和搭建一个基于Struts、Spring和Hibernate...

    struts2 spring hibernate整合例子

    Struts2、Spring和Hibernate是...这个整合例子适合初学者了解和实践Java Web开发,通过实际操作可以加深对这三个框架的理解,提升开发技能。通过分析和调试代码,可以更好地掌握MVC模式、依赖注入和数据库操作的精髓。

    Struts Spring Hibernate整合实践.doc

    总之,Struts、Spring和Hibernate的整合让开发者能够快速构建功能丰富的企业级应用。通过理解每个框架的核心职责和它们之间的协作方式,可以有效地提高开发效率和代码质量。实践是掌握技术的关键,所以动手尝试这个...

    Struts Spring Hibernate 整合 OpenSessionInView 例子

    为了练手培训,给大家准备的 Open Session In View 的简单例子,纯代码,大家可以参考,其中主要说了六部分内容: 1.通过接口编程 2.通过spring注入dao到 action 3.通过 open session in view filter 支持 延迟加载...

    struts spring hibernate 集成例子

    这个"struts-hibernate-integration-tutorial"压缩包可能包含了一系列的源代码示例和一个PDF教程,指导读者如何一步步地将这三个框架整合起来。源码通常会有配置文件(如struts-config.xml, applicationContext.xml,...

    struts spring hibernate例子

    在这个“Struts Spring Hibernate例子”中,我们将深入探讨这三个框架如何集成并发挥其优势。 Struts是MVC(模型-视图-控制器)架构模式的一个实现,主要处理用户交互和请求分发。它提供了Action类来处理HTTP请求,...

    struts + hibernate 整合例子

    下面将详细阐述Struts和Hibernate的整合过程及其重要知识点。 1. **Struts框架**: - **MVC模式**:Struts是基于MVC设计模式的,将业务逻辑、视图和控制器分离,提高代码的可维护性和可扩展性。 - **Action类**:...

    Eclipse + MyEclipse整合Struts+Spring+Hibernate简单例子开发

    标题 "Eclipse + MyEclipse整合Struts+Spring+Hibernate简单例子开发" 指向的是一个关于如何在集成开发环境Eclipse与MyEclipse中搭建Struts、Spring和Hibernate(SSH)框架的教程。SSH是Java Web开发中常用的一个...

    struts1+spring+hibernate整合示例

    ### Struts1+Spring+Hibernate整合示例解析 在Java Web开发领域,Struts1、Spring与Hibernate三者的结合(通常简称为SSH)是构建复杂应用的一种常见模式。本篇文章将详细解读“struts1+spring+hibernate整合示例”...

    Struts1+Spring2+Hibernate2整合详细例子

    这个整合例子旨在展示如何将这三个框架协同工作,以构建一个完整的Java Web应用程序。 Struts1是Apache基金会的一个开源项目,主要用于处理Web应用程序的用户界面和业务逻辑。它遵循MVC(Model-View-Controller)...

    最简单的Spring+Struts2+Hibernate整合例子

    最简单的Spring+Struts2+Hibernate整合例子,MySql数据库,IDE是JavaEE版的Eclipse,tomcat7.0 ,实现功能:登录+注册+增删改查+一键清空数据库表的数据。所有jar文件都在里面了。

    spring +struts + hibernate 例子

    将Spring、Struts和Hibernate整合在一起,可以构建出高效、可维护的企业级Web应用。整合过程中,Spring通常作为全局的上下文容器,管理Struts的Action和Hibernate的SessionFactory。Struts负责处理HTTP请求,调用...

    struts2+spring+hibernate整合例子

    在"struts2+spring+hibernate整合例子"中,开发者通常会遵循以下步骤来完成整合: 1. **Struts2配置**: - 首先,需要在项目中引入Struts2的核心库,创建`struts.xml`配置文件,定义Action、结果类型、拦截器栈等...

    使用Struts+Spring+Hibernate整合开发例子

    环境:jdk5.0 eclipse3.2 struts1.1 spring1.2 hibernate3.1 mysql5.0 1. 新建一个starssh的web工程 2. 添加struts框架包。 3. 添加spring框架包。注意spring的配置文件要放到WEB-INF下。 4. 添加hibernate框架...

    整合Struts+Spring+Hibernate简单例子开发

    在Struts和Hibernate的整合中,Spring主要作为容器管理它们,包括Action对象和数据访问对象(DAO)。Spring的IoC容器可以轻松地管理和配置其他框架的组件,使得整个应用的耦合度降低。 **Hibernate框架**是一个强大...

    精通Java EE项目案例--基于Eclipse Spring Struts Hibernate (例子中的初始化SQL)

    本资源“精通Java EE项目案例--基于Eclipse Spring Struts Hibernate (例子中的初始化SQL)”正是针对这样的集成环境提供了一套完整的数据库初始化语句,帮助开发者快速构建一个功能完善的Web应用。 首先,让我们...

    strutsspringhibernate连接oracle例子

    在SSH整合中,Spring可以管理Struts2的Action实例,以及Hibernate的SessionFactory,从而实现事务控制和数据访问对象(DAO)的管理。配置文件如applicationContext.xml将定义这些组件的依赖关系。 Hibernate是Java ...

    struts2 spring hibernate ajax整合例子

    Struts2、Spring、Hibernate和Ajax是Java Web开发中的四大核心技术,它们的整合可以构建出高效、灵活且功能丰富的Web应用程序。以下是对这四个技术及其整合应用的详细说明。 **Struts2** 是一个基于MVC(Model-View...

Global site tag (gtag.js) - Google Analytics