struts2+spring+hibernte整合示例

简单实现添加用户功能,仅供初学者参考,可自行扩展程序功能(增删改查)。

这里贴下代码,需要的可以下载看(因为比较懒)。

applicationContext.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop"
    xmlns:tx="http://www.springframework.org/schema/tx" xmlns:p="http://www.springframework.org/schema/p" xmlns:util="http://www.springframework.org/schema/util" xmlns:jdbc="http://www.springframework.org/schema/jdbc"
    xmlns:cache="http://www.springframework.org/schema/cache"
    xsi:schemaLocation="
    http://www.springframework.org/schema/context
    http://www.springframework.org/schema/context/spring-context.xsd
    http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans.xsd
    http://www.springframework.org/schema/tx
    http://www.springframework.org/schema/tx/spring-tx.xsd
    http://www.springframework.org/schema/jdbc
    http://www.springframework.org/schema/jdbc/spring-jdbc-3.1.xsd
    http://www.springframework.org/schema/cache
    http://www.springframework.org/schema/cache/spring-cache-3.1.xsd
    http://www.springframework.org/schema/aop
    http://www.springframework.org/schema/aop/spring-aop.xsd
    http://www.springframework.org/schema/util
    http://www.springframework.org/schema/util/spring-util.xsd">  

   <!-- 引入外部配置文件 -->
   <context:property-placeholder location="classpath:jdbc.properties"/>
   <!-- 配置连接池 -->
   <bean id="dataSource"  class="com.mchange.v2.c3p0.ComboPooledDataSource">
           <property name="driverClass" value="${jdbc.driverClass}"/>
           <property name="jdbcUrl" value="${jdbc.url}"/>
           <property name="user" value="${jdbc.username}"/>
           <property name="password" value="${jdbc.password}"/>
   </bean>

   <!-- 配置Hibernate相关属性 -->
   <bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
           <!-- 注入连接池 -->
           <property name="dataSource" ref="dataSource"/>
           <!-- 配置Hibernate的属性 -->
           <property name="hibernateProperties">
               <props>
                   <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
                   <prop key="hibernate.show_sql">true</prop>
                   <prop key="hibernate.format_sql">true</prop>
                   <prop key="hibernate.hbm2ddl.auto">update</prop>
               </props>
           </property>

           <!-- 加载Hibernate中的映射文件 -->
           <property name="mappingResources">
               <list>
                   <value>cn/bj/ssh/entity/User.hbm.xml</value>
               </list>
           </property>

   </bean>
   <!-- 配置Action类 -->
   <bean id="userAction" class="cn.bj.ssh.action.UserAction" scope="prototype">
           <!-- 手动注入service -->
           <property name="userService" ref="userService"/>
   </bean>

   <!-- 配置业务的类 -->
   <bean id="userService" class="cn.bj.ssh.service.UserService">
           <property name="userDao" ref="userDao"/>
   </bean>

   <!-- 配置DAO的类 -->
   <bean id="userDao" class="cn.bj.ssh.dao.UserDao">
           <property name="sessionFactory" ref="sessionFactory"/>
   </bean>

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

   <!-- 开启注解事物 -->
   <tx:annotation-driven transaction-manager="transactionManager"/>
 </beans>

连接数据库配置:jdbc.properties

# JDBC Configuration
jdbc.driverClass=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://127.0.0.1:3306/ssh
jdbc.username=root
jdbc.password=root

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>

    <!-- 交由spring管理  直接写id即可 -->
    <package name="ssh" extends="struts-default" namespace="/">
        <action name="user_*" class="userAction" method="{1}">
            <result name="loginSuccess">/index.jsp</result>
                <!-- <result name="success_save">/index.jsp</result>-->
        </action>
    </package>

</struts>

UserAction.java

package cn.bj.ssh.action;

import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;

import cn.bj.ssh.entity.User;
import cn.bj.ssh.service.UserService;

public class UserAction extends ActionSupport implements ModelDriven<User>{

    private static final long serialVersionUID = 1L;
    //模型驱动使用的类
    private User user = new User();

    //自动注入
    private UserService userService;

    public void setUserService(UserService userService) {
        this.userService = userService;
    }

    @Override
    public User getModel() {
        return user;
    }

    //保存用户
    public String save(){
        userService.save(user);
        return "loginSuccess";
    }

}

UserService.java(由于比较简单,看起来更直观,service和dao就没有写接口)

package cn.bj.ssh.service;

import org.springframework.transaction.annotation.Transactional;

import cn.bj.ssh.dao.UserDao;
import cn.bj.ssh.entity.User;

@Transactional
public class UserService{

    private UserDao userDao;

    public void setUserDao(UserDao userDao) {
        this.userDao = userDao;
    }

    public void save(User user){
        userDao.save(user);
    }

}

UserDao.java

package cn.bj.ssh.dao;

import org.hibernate.SessionFactory;

import cn.bj.ssh.entity.User;

public class UserDao {

    private SessionFactory sessionFactory;

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

    public String save(User user) {
        this.sessionFactory.getCurrentSession().save(user);
        return "success_save";
    }

}

实体类User.jsp

package cn.bj.ssh.entity;

public class User {

    private Integer pid;
    private String name;
    private String password;
    private Double height;

    public User(){}

    public User(Integer pid, String name, String password,Double height) {
        super();
        this.pid = pid;
        this.name = name;
        this.password = password;
        this.height = height;
    }

    public Integer getPid() {
        return pid;
    }
    public void setPid(Integer pid) {
        this.pid = pid;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
    public Double getHeight() {
        return height;
    }
    public void setHeight(Double height) {
        this.height = height;
    }

}

映射文件:User.hbm.xml

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib uri="/struts-tags" prefix="s"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
    <h1>保存用户页面</h1>
    <s:form action="user_save" method="post" namespace="/" theme="simple">
        <table border="1" width="400">
            <tr>
                <td>用户名</td>
                <td><s:textfield name="name" /></td>
            </tr>
            <tr>
                <td>用户密码</td>
                <td><s:textfield name="password" /></td>
            </tr>
            <tr>
                <td>用户身高</td>
                <td><s:textfield name="height" /></td>
            </tr>
            <tr>
                <td colspan="2"><input type="submit" value="添加" /></td>
            </tr>
        </table>
    </s:form>
</body>
</html>

添加用户页面:addUser.jsp

<?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 name="cn.bj.ssh.entity.User" table="user">
       <id name="pid" column="pid">
            <generator class="native"/>
       </id>
       <property name="name" column="name" length="20"></property>
       <property name="password" column="password" length="20"/>
        <property name="height" column="height"/>
    </class>
</hibernate-mapping>
     

先这样回头 把这个项目链接搞过来,有点晚了。

时间: 2024-10-06 13:10:01

struts2+spring+hibernte整合示例的相关文章

Struts2框架07 Struts2 + Spring + Mybatis 整合

1 导包 1 <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-4.0.0.xsd"> 2 <m

maven + Struts2 + Spring + Hibernate 整合 &gt;&gt;&gt; 配置文件关系图

SSH 配置比较多,有很多地方一直都很模糊,这次整理一下思路. 所有源文件都在文末. XML 文件:链接:https://pan.baidu.com/s/1kUHjhAJ 密码:b4b3 图片超清版本:链接:https://pan.baidu.com/s/1nvdzMfn 密码:z8my Xmind 格式原件:链接:https://pan.baidu.com/s/1jH7HE1C 密码:f4bb

Struts2 + Spring + Hibernate

Struts2 + Spring + Hibernate整合. 使用的是无配置方法进行SSH的整合,struts-convertion plugin + spring annotation + hibernate annotation方式,无配置快速开发. 示例 项目结构: src源码结构: WEB-INF\lib目录需要加入的jar包有: 1.将struts.xml加入到src目录当中: <?xml version="1.0" encoding="UTF-8"

struts2+spring的两种整合方式

借助于Spring插件(Struts2-spring-plugin-XXX.jar),我们可以非常简单地完成Spring和Struts2的整合,这种整合包括让Action自动装配Spring容器中的Bean,以及让Spring管理应用中的Action两种方式,不管采用哪种方式,完成Struts2和Spring的整合都是非常简单的,而且差别不大.一旦在Web应用中安装了Spring插件,即可充分利用该插件提供的功能: 1,可以通过Spring来创建所有的Action,Interceptor和Res

Spring与Struts2整合VS Spring与Spring MVC整合

Spring与Struts2整合,struts.xml在src目录下 1.在web.xml配置监听器 web.xml <!-- 配置Spring的用于初始化ApplicationContext的监听器 --> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <contex

struts2+hibernate-jpa+Spring+maven 整合(2)

之前的一篇已经讲到了 spring 与struts2 的整合, 其实对于struts2+hibernate-jpa+Spring 之间的整合的文章已经相当多了, 也相当成熟了,只要不是各自的版本不兼容之外,其他的几乎没啥问题, 不行mybatis那样是不是的冒点让人头疼的事情来 下面修改pom.xml ,把hibernate 的jar 关联进来; <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="

Struts2+Spring3+MyBatis3整合以及Spring注解开发

 分类: Web(2)  版权声明:本文为博主原创文章,未经博主允许不得转载. 最近在做一个SpringMVC+spring+MyBatis的项目,突然想起以前自己要搭建一个Struts2+Spring+IBatis的框架,但是没成功,正好看见培训时候老师给的千里之行的开源项目.于是将这个项目提供的SQL加入到了自己的数据库中(所以数据和项目名用的是qlzx),打算以后做练习的时候用这个数据库.那么接下来问题来了(不要说某翔或者不约,不是那个问题):我有了数据库和数据,想要搭建一个网站,该怎么做

【Struts2】如何实现Struts2与Spring的整合 外加 MyBatis 框架

1,简介 一般没有人会用Spring+Struts2+MyBatis这样的框架了,可不能简称为SSM.因为SSM是Spring+SpringMVC+Mybatis的简称.SSH是Spring+Struts2+Hibernate,不过现在SSH用的人也不多了.这里笔者把Sping+Struts2+Mybatis放在一起就是纯粹的实现一下功能.主要讨论的还是Struts2和Spring. 如果不使用Spring框架,Struts2框架内部还是有机制可以利用反射创建对象,之所以要把Spring+Str

struts2+hibernate-jpa+Spring+maven 整合(1)

1.0.0 struts2 与 spring 的整合. 1.1.0 新建maven工程 , 编写pom.xml ,这里只需要简单的添加 一个组件就够了: 在myeclipse 生成的pom.xml 添加如下代码: <dependency> <groupId>org.apache.struts</groupId> <artifactId>struts2-spring-plugin</artifactId> <version>2.3.16