SSH(Spring+struts2+hibernate)整合版详解

Spring+Struts2+hibernate框架整合的步骤:

开发工具:idea+Oracle数据库

一:引入相关的依赖jar包

<!--oracle驱动--><!-- https://mvnrepository.com/artifact/com.oracle/ojdbc14 --><dependency>    <groupId>com.oracle</groupId>    <artifactId>ojdbc6</artifactId>    <version>11.1.0.7.0</version></dependency><!--hibernate 核心依赖--><!-- https://mvnrepository.com/artifact/org.hibernate/hibernate-core --><dependency>    <groupId>org.hibernate</groupId>    <artifactId>hibernate-core</artifactId>    <version>5.0.6.Final</version></dependency>

<!-- jta依赖 主要作用是事务处理--><!-- https://mvnrepository.com/artifact/javax.transaction/jta --><dependency>    <groupId>javax.transaction</groupId>    <artifactId>jta</artifactId>    <version>1.1</version></dependency>

<!-- https://mvnrepository.com/artifact/javax/javaee-api --><dependency>    <groupId>javax</groupId>    <artifactId>javaee-api</artifactId>    <version>7.0</version>    <scope>provided</scope></dependency>

<!--spring配置jar--><!-- https://mvnrepository.com/artifact/org.springframework/spring-context --><dependency>    <groupId>org.springframework</groupId>    <artifactId>spring-context</artifactId>    <version>4.3.10.RELEASE</version></dependency>

<!-- https://mvnrepository.com/artifact/org.springframework/spring-tx --><dependency>    <groupId>org.springframework</groupId>    <artifactId>spring-tx</artifactId>    <version>4.3.9.RELEASE</version></dependency>

<!--aop使用的jar--><!-- https://mvnrepository.com/artifact/org.aspectj/aspectjweaver --><dependency>    <groupId>org.aspectj</groupId>    <artifactId>aspectjweaver</artifactId>    <version>1.8.7</version></dependency>

<!--web编程jar--><!-- https://mvnrepository.com/artifact/org.springframework/spring-web --><dependency>    <groupId>org.springframework</groupId>    <artifactId>spring-web</artifactId>    <version>4.3.10.RELEASE</version></dependency>

<!-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc --><dependency>    <groupId>org.springframework</groupId>    <artifactId>spring-webmvc</artifactId>    <version>4.1.6.RELEASE</version></dependency>

<!--jstl--><dependency>    <groupId>javax.servlet</groupId>    <artifactId>jstl</artifactId>    <version>1.2</version>    <scope>runtime</scope></dependency>

<!--c3p0连接池--><dependency>    <groupId>c3p0</groupId>    <artifactId>c3p0</artifactId>    <version>0.9.1</version></dependency>

<!--spring整合hibernate--><!-- https://mvnrepository.com/artifact/org.springframework/spring-orm --><dependency>    <groupId>org.springframework</groupId>    <artifactId>spring-orm</artifactId>    <version>4.3.9.RELEASE</version></dependency>

<!--struts2 核心包--><!-- https://mvnrepository.com/artifact/org.apache.struts/struts2-core --><dependency>    <groupId>org.apache.struts</groupId>    <artifactId>struts2-core</artifactId>    <version>2.3.4</version></dependency>

<!--xwork 核心包--><!-- https://mvnrepository.com/artifact/org.apache.struts.xwork/xwork-core --><dependency>    <groupId>org.apache.struts.xwork</groupId>    <artifactId>xwork-core</artifactId>    <version>2.3.4</version></dependency>

<!--Struts整合Spring的jar包--><dependency>    <groupId>org.apache.struts</groupId>    <artifactId>struts2-spring-plugin</artifactId>    <version>2.3.4.1</version></dependency>

二:搭建整个项目结构

beans层
public class StudentSSH {    private int id;    private String name;

    public int getId() {        return id;    }    public void setId(int id) {        this.id = id;    }

    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }}
<?xml version="1.0"?>        <!DOCTYPE hibernate-mapping PUBLIC                "-//Hibernate/Hibernate Mapping DTD 3.0//EN"                "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">        <!-- 映射文件开始 --><hibernate-mapping package="cn.sjl.beans"><!--表名称--><class name="StudentSSH" table="STUDENTSSH">    <!--列名-->    <id name="id" column="ID">        <!--主键生成的策略  native:自动生成主键字段-->        <generator class="native"></generator>    </id>    <property name="name" column="NAME"></property></class></hibernate-mapping>

dao层
public interface IStudentDAO {    /**     * 添加学生     * @param student     * @return     */    public int add(StudentSSH student);}
public class StudentDAOImpl implements IStudentDAO {    //注入SessionFactory工厂    private SessionFactory sessionFactory;    //添加    public int add(StudentSSH student) {        Serializable count = sessionFactory.getCurrentSession().save(student);        return (Integer)count;    }

    public SessionFactory getSessionFactory() {        return sessionFactory;    }    public void setSessionFactory(SessionFactory sessionFactory) {        this.sessionFactory = sessionFactory;    }

}

service层
public interface IStudentService {    /**     * 添加学生     * @param student     * @return     */    public int add(StudentSSH student);}
public class StudentServiceImpl implements IStudentService {    //注入dao层的接口    private IStudentDAO dao;    public IStudentDAO getDao() {        return dao;    }    public void setDao(IStudentDAO dao) {        this.dao = dao;    }

    /**     * 添加     * @param student     * @return     */    @Transactional    public int add(StudentSSH student) {        int result = dao.add(student);        return result;    }}

action层
public class StudentAction extends ActionSupport {    private StudentSSH studentSSH;    private IStudentService studentService;    /**     * 新增     * @return     */    public String Add(){        int count= studentService.add(studentSSH);        if (count>0){            return SUCCESS;        }else {            return LOGIN;        }

    }

    public StudentSSH getStudentSSH() {        return studentSSH;    }    public void setStudentSSH(StudentSSH studentSSH) {        this.studentSSH = studentSSH;    }

    public IStudentService getStudentService() {        return studentService;    }    public void setStudentService(IStudentService studentService) {        this.studentService = studentService;    }}

三:书写配置文件applicationContext.xml文件
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"       xmlns:tx="http://www.springframework.org/schema/tx"       xmlns:context="http://www.springframework.org/schema/context"       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.xsd        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd        http://www.springframework.org/schema/tx   http://www.springframework.org/schema/tx/spring-tx.xsd">    <!--数据源-->    <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">        <property name="driverClass" value="${jdbc.driverClass}"></property>        <property name="jdbcUrl" value="${jdbc.jdbcUrl}"></property>        <property name="user" value="${jdbc.user}"></property>        <property name="password" value="${jdbc.password}"></property>    </bean>

    <!--识别jdbc.properties-->    <context:property-placeholder location="classpath:jdbc.properties"></context:property-placeholder>

    <!--sessionfactory工厂-->    <bean id="factory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean">        <property name="dataSource" ref="dataSource"></property>         <property name="hibernateProperties">             <props>                 <!--控制台打印SQL语句-->                 <prop key="hibernate.show_sql">true</prop>                 <!--格式化sql-->                 <prop key="hibernate.format_sql">true</prop>                 <!--方言-->                 <prop key="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</prop>                 <!--绑定线程-->                 <prop key="hibernate.current_session_context_class">org.springframework.orm.hibernate5.SpringSessionContext</prop>             </props>         </property>        <!--扫描小配置文件-->        <property name="mappingDirectoryLocations" value="classpath:cn/sjl/beans"></property>    </bean>

    <!--dao层-->    <bean id="studentDAO" class="cn.sjl.dao.StudentDAOImpl">        <property name="sessionFactory" ref="factory"></property>    </bean>

    <!--service层-->    <bean id="studentService" class="cn.sjl.service.StudentServiceImpl">        <property name="dao" ref="studentDAO"></property>    </bean>

   <!--创建struts层    struts默认为多例-->    <bean id="StudentAction" class="cn.sjl.action.StudentAction" scope="prototype">        <property name="studentService" ref="studentService"></property>    </bean>

    <!--事务管理器-->    <bean id="transactionManager" class="org.springframework.orm.hibernate5.HibernateTransactionManager">          <property name="sessionFactory" ref="factory"></property>    </bean>

    <!--事务-->    <tx:annotation-driven transaction-manager="transactionManager"></tx:annotation-driven></beans>

struts.xml文件
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE struts PUBLIC        "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"        "http://struts.apache.org/dtds/struts-2.3.dtd"><struts>    <constant name="struts.objectFactory" value="spring"></constant>    <package name="result" namespace="/" extends="struts-default">     <action name="add" class="StudentAction" method="Add">         <result name="success">/jsp/index.jsp</result>         <result name="login">/jsp/add.jsp</result>     </action>    </package></struts>

jdbc.properties文件
jdbc.driverClass=oracle.jdbc.driver.OracleDriverjdbc.jdbcUrl=jdbc:oracle:thin:@localhost:1521:orcljdbc.user=rootjdbc.password=root

四:web.xml文件(这个不能少)
<context-param>  <param-name>contextConfigLocation</param-name>  <param-value>classpath:applicationContext.xml</param-value></context-param><filter>  <filter-name>struts</filter-name>  <!--核心控制器-->  <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class></filter><filter-mapping>  <filter-name>struts</filter-name>  <url-pattern>/*</url-pattern></filter-mapping><!--监听器--><listener>  <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener>

五:jsp页面
<%@ taglib prefix="s" uri="/struts-tags" %><%@ page contentType="text/html;charset=UTF-8" language="java" %><html><head>    <title>添加</title></head><body><s:debug></s:debug><h2>sshxml整合</h2><form  method="post" action="/add">    姓名:<input type="text" name="studentSSH.name">    <input type="submit" value="添加"></form></body></html>
<%@ page contentType="text/html;charset=UTF-8" language="java" %><html><head>    <title>添加成功</title></head><body><h2>add ok</h2></body></html>

六:部署及运行


原文地址:https://www.cnblogs.com/sujulin/p/8508744.html

时间: 2024-11-05 12:25:06

SSH(Spring+struts2+hibernate)整合版详解的相关文章

SSH(Spring+Struts2+Hibernate)整合

本博文介绍目前较流行的三大(Spring+Struts2+Hibernate)框架的整合. 一般整合需要以下几个步骤: 1.首先导入相应的jar包 Spring所需的jar包如下图: Struts所需的jar包如下图: hibernate所需的jar包如下图: 一些共同所需的jar包如下图: 其中mysql-connector-java-5.1.33-bin.jar是连接mysql数据库所需的jar包. 将上述的jar包拷贝到项目的lib目录下. 2.spring和struts整合 只需要Str

Struts+Spring+Hibernate整合入门详解

标签: strutshibernatespringbeanactionimport 2007-08-12 16:05 36280人阅读 评论(13) 收藏 举报 分类: STRUTS&SPRING&HIBERNATE(12) Java 5.0 Struts 2.0.9 spring 2.0.6 hibernate 3.2.4 作者:  Liu Liu 转载请注明出处 基本概念和典型实用例子. 一.基本概念       Struts:作为基于 MVC 模式的 Web 应用最经典框架,两个项目

Spring(五):Spring&amp;Struts2&amp;Hibernate整合后,实现查询Employee信息

背景: 基于之前两篇文章<Spring(三):Spring整合Hibernate>.<Spring(四):Spring整合Hibernate,之后整合Struts2>,了解了如何整合SSH的过程,但还不知道整合后在项目中该怎么开发使用,本文主要讲解的是基于SSH实现Employee信息查询功能的使用. 新建Employee,Department实体类,并添加对应类的hibernate实体配置文件 新建包com.dx.ssh.entities,在该包下创建Employee.Depar

CAS 与 Spring Security 3整合配置详解

一般来说,Web 应用的安全性包括用户认证(Authentication)和用户授权(Authorization)两个部分.用户认证指的是验证某个用户是否为系统中的合法主体,也就是说用户能否访问该系统.用户授权指的是验证某个用户是否有权限执行某个操作.在一个系统中,不同用户所具有的权限是不同的.比如对一个文件来说,有的用户只能进行读取,而有的用户可以进行修改.一般来说,系统会为不同的用户分配不同的角色,而每个角色则对应一系列的权限. 对于上面提到的两种应用情景,Spring Security 框

简单Spring+Struts2+Hibernate框架搭建

使用Maven+Spring+Struts2+Hibernate整合 pom文件 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd

Maven搭建Spring+Struts2+Hibernate项目详解

前言 这篇主要采用Maven搭建Spring+Struts2+Hibernate的整合项目,复习一下SSH框架,虽然spring提供自己的MVC框架,但是Spring也提供和其他框架的无缝整合,采用组件形式对个框架进行管理,项目实例是按照真实企业里面的开发搭建,也是web的最后一片了.数据库使用mysql,连接池使用的是Druid数据源(这些都无关紧要,可以随时的替换),下面就将详细的介绍一下Maven搭建Spring,Struts2,和hibernation的步奏. 1.数据库设计 数据库库表

轻量级Java EE企业应用实战(第4版):Struts 2+Spring 4+Hibernate整合开发(含CD光盘1张)

轻量级Java EE企业应用实战(第4版):Struts 2+Spring 4+Hibernate整合开发(含CD光盘1张)(国家级奖项获奖作品升级版,四版累计印刷27次发行量超10万册的轻量级Java EE经典著作) 李刚 编著   ISBN 978-7-121-24253-3 2014年10月出版 定价:108.00元 824页 16开 编辑推荐 国内知名IT图书作家李刚老师基于曾荣获中国书刊发行业协会“年度全行业优秀畅销品种”大奖的<轻量级Java EE企业应用实战(第3版)>全新升级:

Spring+Struts2+Hibernate的整合

这篇主要采用Maven搭建Spring+Struts2+Hibernate的整合项目,复习一下SSH框架,虽然spring提供自己的MVC框架, 但是Spring也提供和其他框架的无缝整合,采用组件形式对个框架进行管理,项目实例是按照真实企业里面的开发搭建,也是web的最后一片了.数据库使 用mysql,连接池使用的是Druid数据源(这些都无关紧要,可以随时的替换),下面就将详细的介绍一下Maven搭建 Spring,Struts2,和hibernation的步奏. 1.数据库设计 数据库库表

Spring Boot的启动器Starter详解

Spring Boot的启动器Starter详解 作者:chszs,未经博主允许不得转载.经许可的转载需注明作者和博客主页:http://blog.csdn.net/chszs Spring Boot应用启动器基本的一共有44种,具体如下: 1)spring-boot-starter 这是Spring Boot的核心启动器,包含了自动配置.日志和YAML. 2)spring-boot-starter-actuator 帮助监控和管理应用. 3)spring-boot-starter-amqp 通