`
1140566087
  • 浏览: 560206 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
博客专栏
2c4ae07c-10c2-3bb0-a106-d91fe0a10f37
c/c++ 入门笔记
浏览量:18569
3161ba8d-c410-3ef9-871c-3e48524c5263
Android 学习笔记
浏览量:314523
Group-logo
J2ME 基础学习课程集
浏览量:18795
A98a97d4-eb03-3faf-af96-c7c28f709feb
Spring 学习过程记录...
浏览量:17593
社区版块
存档分类
最新评论

Spring S2S集成开发

阅读更多
[color=red]

struts2.0 和 Spring 集成开发

知识点:DAO层的应用和基本的配置介绍

提示:S2集成Spring时struts2-spring-plugin-2[1].0.6.jar要加入到项目中去
1、首先搭建基本的struts2.0 的web 运行环境 和 Spring 的环境
2、配置 spring 在web 的运行环境:
[/color]

如:
在web.xml 中配置:
<!-- 配置Spring 在web上的运行环境 -->

  <listener>
  	<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  </listener>
  <context-param>
  	<param-name>contextConfigLocation</param-name>
  	<param-value>classpath:applicationContext.xml</param-value>
  </context-param>


  说明:
  org.springframework.web.context.ContextLoaderListener 该类是:
  org.springframework.web-3.0.1.Release-a.jar 下的
  理解:好似事件中的监听,等待触发;

3、在struts.xml 中配置sturts2.0 与 spring 的管理关系
首先配置常量用来说明:struts 的对象由spring 来管理:
<constant name="struts.objectFactory" value="spring"></constant>

然后:action 中class 的值为:需要访问的Action 在Spring容器中bean 的ID,
通过容器来注入并实现调用;
例如:


<action name="user_*" method="{1}" class="useraction"></action>	

说明:useraction  对应:
<bean id="useraction" class="com.svse.action.UserAction" scope="prototype"></bean>

注意:Action会被多次的调用,而且直接关系到界面和数据库数据的同步,所以此处必须明确的指出该bean 使用代理模式,以保证数据的同步性:即设置:scope="prototype";

4、在applicationContext.xml 中配置连接数据库的数据源:
<bean id="datasources" class="org.apache.commons.dbcp.BasicDataSource">
		<property name="driverClassName" value="com.microsoft.sqlserver.jdbc.SQLServerDriver"></property>
		<property name="url" value="jdbc:sqlserver://localhost:1433;database=TESTDB"></property>
		<property name="username" value="sa"></property>
		<property name="password" value="svse"></property>
	</bean>
说明:org.apache.commons.dbcp.BasicDataSource 这个类属于:commons-dbcp.jar包

	<!-- 注入DAO层 : dataSource 是UserDao从JdbcDaoSupport 中继承而来,用于处理数据的 -->
	<!-- 依赖注入数据源,马上就可以操作数据库了 -->
	<bean id="userDao" class="com.svse.dao.UserDao">
		<property name="dataSource" ref="datasources"></property>
	</bean>


5、在DAO层 ,对数据进行增、删、该、查
<!--
package com.svse.dao;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List;

import org.springframework.dao.DataAccessException;
import org.springframework.jdbc.core.ResultSetExtractor;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.jdbc.core.support.JdbcDaoSupport;

import com.svse.entity.UserEntity;

/**
 * 
 * @author Administrator
 * Spring 中DAO层,操作数据库需要继承JdbcDaoSupport * 
 */
public class UserDao extends JdbcDaoSupport {
	
	/**
	 * 增加
	 * @param user 
	 */
	public void addUser(UserEntity user) {
		this.getJdbcTemplate().update("insert into t_user values(?,?,?)",
				new Object[]{user.getU_name(),user.getSex(),user.getHib()});
	}

	/**
	 * 删除
	 * @param uId
	 */
	public void delUser(int uId) {
		this.getJdbcTemplate().update("delete from t_user where u_id=?",new Object[]{new Integer(uId)});
	}

	/**
	 * 查询所有
	 * @return list
	 */
	public List findAllUser() {

		return this.getJdbcTemplate().query("select * from t_user",new RowMapper(){
			/**
			 * rs  : 保存了查询出来的结果集 , 此处可以直接进行获取,并且不需要进行while循环读取
			 * @return user  : 此处返回的使用个UserEntity的实体对象,返回后由RwoMapper自动的封装成
			 * 一个集合,最后的返回给业务逻辑层
			 */
			public Object mapRow(ResultSet rs, int arg1) throws SQLException {
				UserEntity user = new UserEntity();
				user.setU_id(rs.getInt("u_id"));
				user.setU_name(rs.getString("u_name"));
				user.setSex(rs.getString("u_sex"));
				user.setHib(rs.getString("u_hid"));
				return user;
			}});
	}

	/**
	 * 查询一个
	 * @param uId
	 * @return user
	 */
	public UserEntity findUserById(int uId) {
		//此处直接返回一个UserEntity 的实体对象,需要进行强转;
		return (UserEntity)this.getJdbcTemplate().query("select * from t_user where u_id =?" ,
				new Object[]{new Integer(uId)},
				new ResultSetExtractor(){
					/**
					 * @param rs : 一个结果集 , 此处获取rs中的值需要while判断取值
					 */
					public Object extractData(ResultSet rs)
							throws SQLException, DataAccessException {
						UserEntity user = null;
						while(rs.next()){
							user = new UserEntity();
							user.setU_id(rs.getInt("u_id"));
							user.setU_name(rs.getString("u_name"));
							user.setSex(rs.getString("u_sex"));
							user.setHib(rs.getString("u_hid"));
						}
						return user;
					}});
	}

	/**
	 * 修改
	 * @param user
	 */
	public void uppUser(UserEntity user) {
		this.getJdbcTemplate().update(
				"update t_user set u_name=?,u_sex=? ,u_hid=? where u_id=?",
				new Object[] {user.getU_name(),user.getSex(),user.getHib(),new Integer(user.getU_id())});
	}
	
}

-->
0
1
分享到:
评论

相关推荐

    S2S实例源码(struts2 spring hibrnate)

    S2S实例源码整合了这三者,提供了一个完整的MVC(Model-View-Controller)架构。 **Struts2** 是一个基于MVC设计模式的Action框架,它提供了强大的请求处理机制和丰富的插件支持。Struts2的核心是拦截器,通过拦截...

    S2SH集成教程

    - **S2SH框架集成**:本教程旨在介绍如何将Struts2 (S2)、Spring (S) 和 Hibernate (H) 这三大框架集成在一起,构建一个高效且结构清晰的Java Web应用。 - **目标读者**:面向初学者及爱好者,特别是那些希望通过...

    struts2集成spring,hibnate

    Struts2、Spring和Hibernate是Java Web开发中的三个核心框架,它们共同构成了经典的S2SH架构,用于构建高效、可维护的企业级应用。Struts2作为MVC(模型-视图-控制器)框架,主要负责处理用户请求和展示视图;Spring...

    BBS.rar_MyEclipse tomcat_MyEclipse BBS_bbs jsp_myeclipse b_s2s

    这是一个关于使用MyEclipse集成开发环境,结合MySQL数据库和Tomcat服务器开发的基于JSP的BBS(电子公告板)系统的实例。这个压缩包包含了必要的文件和资源,可以帮助学习者理解如何构建一个基本的在线讨论论坛。 ...

    S2 + S + H CURD

    标题中的"S2 + S + H CURD"很可能指的是在Java开发中常见的三个开源框架的组合:Spring Boot(S),Spring Cloud(S),以及Hibernate(H)。这三个框架在企业级应用开发中广泛使用,用于实现快速的CURD操作,即创建...

    网上购物车struts+spring+hibernate实现

    - **标签库**:Struts 提供了一系列自定义标签,如`&lt;s:form&gt;`、`&lt;s:textfield&gt;`等,简化了视图层的开发。 2. **Spring**: - **依赖注入(DI)**:Spring 提供了强大的依赖注入功能,使得组件间的依赖关系可以...

    s2sh整合所有jar包以及json整合

    标题“s2sh整合所有jar包以及json整合”涉及到的是一个Web开发中的集成技术问题,主要是关于Struts2(S2)、Spring(S)和Hibernate(H)这三种开源框架的整合,以及如何将JSON(JavaScript Object Notation)数据...

    酒店管理系统(一) accp北大青鸟S2项目实战 参考代码

    10. **集成开发环境(IDE)**:如Eclipse、IntelliJ IDEA或Visual Studio,提供代码编辑、调试、版本控制等工具,提高开发效率。 11. **版本控制**:利用Git进行版本控制,便于团队协作和代码管理。 12. **项目...

    s2C#项目实战酒店管理系统

    【S2C#项目实战酒店管理系统】是一个针对初学者和有一定C#基础的学习者设计的实践项目,旨在通过模拟真实的酒店业务流程,帮助用户提升C#编程技能和对S2框架的理解。S2是一个常见的软件架构模式,通常指的是Service-...

    软件平台\软件实例\S2SH_jar.

    【标题】:“S2SH_jar”是一个与软件平台相关的实例,主要涉及到的是Java开发中的Struts2、Spring和Hibernate三大框架集成应用的打包文件。 【描述】:描述中的重复内容“软件平台\软件实例\S2SH_jar.”可能表示这...

    S2SI框架学习

    Struts2+Spring+Ibatis(简称S2SI)是一个常见的Java Web开发框架组合,它为开发者提供了构建高效、可维护的应用程序的强大工具。在这个框架集成中,Struts2负责控制层,Spring作为业务逻辑层和依赖注入容器,而...

    s2s2h3+servlet所需包

    标题 "s2s2h3+servlet所需包" 暗示了这是一个关于Web开发中使用的框架和技术的集合,特别是Spring(S2S可能代表Spring的两个版本或Spring Security)、Struts2(S2)和Hibernate(H3),以及Servlet技术。...

    一个S2S+ibatis一个增删改查的例子(由原先SSH2改编)

    标题中的“S2S+ibatis一个增删改查的例子”指的是使用Struts2和iBatis框架实现的典型数据库操作应用。Struts2是一个基于MVC设计模式的Java Web框架,而iBatis则是一个SQL映射框架,用于简化数据库访问。这个例子将...

    s2sh版本ckeditor

    【标题】"s2sh版本ckeditor"涉及到的是一个基于Struts2(S2)、Spring(S)和Hibernate(H)的Web开发框架整合CKEditor 3.2的使用。CKEditor是一款流行的开源富文本编辑器,它提供了丰富的文本格式化功能,常用于...

    SSH整合包(S1.3+S2.5+H3.3)

    SSH整合包(S1.3+S2.5+H3.3)是一个常见的Java Web开发框架组合,由Struts 1.3、Spring 2.5和Hibernate 3.3这三大开源框架集成而成。这个整合包是开发人员进行企业级应用开发时常用的一种工具集合,便于快速构建基于...

    s2.1.8+spring2.5.6+hiberante3.3.2+dwr2.0.6

    Struts2.1.8+Spring3.0+Hibernate3.3.2+DWR2.0.6 是一个经典的Java Web开发框架组合,通常被称为SSH2或S2SH+DWR。这个组合在过去的几年里被广泛使用,因为它们各自在应用程序的不同层面上提供了强大的功能。 **...

    S2SH做的添加和现实

    标题 "S2SH做的添加和现实" 暗示了这是一个使用Struts 2 (S), Spring (S) 和 Hibernate (H) 三者结合的Web应用开发框架,即S2SH,进行的项目。这个项目的核心是实现数据的添加(Add)和显示(Display)功能,这通常...

    S2SHJar文件整理

    标题“S2SHJar文件整理”表明我们正在讨论一个与Java开发相关的项目,具体是Spring、Struts2(S2)和Hibernate(S)组成的经典企业级应用框架,通常称为SSH或S2SH。这个框架组合是过去常用的,用于构建Web应用程序。...

    看看五个框架在一起是怎么搞的 S2SHorS2SI.rar

    标题中的"S2SHorS2SI"暗示了这个压缩包可能包含了两个常见的Java Web开发框架:Struts2(S2)和Spring2(S),以及Hibernate(H)和Spring Integration(I)。这些框架通常用于构建复杂的、企业级的Web应用程序。...

Global site tag (gtag.js) - Google Analytics