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

spring3.0+struts2.1+mybatis3.2搭建

    博客分类:
  • SSM
阅读更多

1.导入的相关包是:

asm-3.3.1.jar

cglib-2.2.2.jar

commons-logging-1.1.1.jar

javassist-3.17.1-GA.jar

log4j-1.2.17.jar

mybatis-3.2.2.jar

mybatis-spring-1.2.0-javadoc.jar

mybatis-spring-1.2.0-sources.jar

mybatis-spring-1.2.0.jar

ojdbc5.jar

slf4j-api-1.7.5.jar

slf4j-log4j12-1.7.5.jar

 

2.建立的package

com.ly.action(com/ly/action/UserAction.java   struts的action操作层)

com.ly.mapper(com/ly/mapper/UserMapper.java和com/ly/mapper/UserMapper.xml mapper接口和映射文件)

com.ly.model(com/ly/model/User.java  POJO类)

com.ly.service(/com/ly/service/UserService.java  service接口)

com.ly.service.impl(com/ly/service/impl/UserServiceImpl.java  service接口实现类   业务逻辑层)

 

3.myEclipse需要导入的插件有:

Struts 2 Core Libraries

Struts 2 Spring Libraries

Spring 3.0 Core Libraries

Spring 3.0 AOP Libraries

Spring 3.0 Persistence JDBC

Spring 3.0 Persistence Core

Spring 3.0 web libraries

 

4.在src/applicationContext.xml配置文件中配置:

 

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
        <!--指定oracle.properties的位置-->
	<bean
		class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
		<property name="location" value="classpath:oracle.properties"></property>
	</bean>
        <!--链接oracle数据源-->
	<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
		destroy-method="close">
		<property name="username" value="${jdbc.username}"></property>
		<property name="password" value="${jdbc.password}"></property>
		<property name="url" value="${jdbc.url}"></property>
		<property name="driverClassName" value="${jdbc.driver}"></property>
	</bean>
        <!-spring管理sqlsessionfactory-->
	<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
		<property name="dataSource" ref="dataSource"></property>
                <!--告诉spring  mapper映射文件的位置 该包下的所有xml文件-->
		<property name="mapperLocations" value="classpath*:com/ly/mapper/**/*.xml"></property>
                <!--告诉spring  POJO;类-->
		<property name="typeAliasesPackage" value="com.ly.model"></property>
	</bean>
        
	<bean id="usermapper" class="org.mybatis.spring.mapper.MapperFactoryBean">
		<property name="sqlSessionFactory" ref="sqlSessionFactory"></property>
		<property name="mapperInterface" value="com.ly.mapper.UserMapper"></property>
	</bean>
	<!--需要在userservice的实现类里添加mappper对象属性-->
	<bean id="userserviceimpl" class="com.ly.service.impl.UserServiceImpl">
		<property name="usermapper" ref="usermapper"></property>
	</bean>
	<!--该配置后,需要在UserAction.java类里添加userservice属性-->
	<bean id="useraction" class="com.ly.action.UserAction">
		<property name="userservice" ref="userserviceimpl"></property>
	</bean>
	
	<!-- 配置事物 -->
	<bean id="transactionManager"
		class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
		<property name="dataSource" ref="dataSource"></property>
	</bean>
	<!--链接其他spring配置文件-->
	<import resource="aop.xml"/>
</beans>

 

aop.xml配置:

 

这一步需要右键工程名/src目录new->other->Spring->Spring Bean Definition->next-(需要修改配置文件的文件名,自定义文件名这里是aop.xml)->finish

 

 

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop"
	xmlns:lang="http://www.springframework.org/schema/lang" xmlns:p="http://www.springframework.org/schema/p"
	xmlns:tx="http://www.springframework.org/schema/tx"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
		http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
		http://www.springframework.org/schema/lang http://www.springframework.org/schema/lang/spring-lang-3.0.xsd
		http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd">
 
   <!--配置事物处理策略-->
 
	<tx:advice id="txadvice" transaction-manager="transactionManager">
		<tx:attributes>
                        <!--抛出异常测回滚-->
			<tx:method name="add*" isolation="DEFAULT" propagation="REQUIRED"
				timeout="-1" rollback-for="java.lang.Exception" />
			<tx:method name="del*" isolation="DEFAULT" propagation="REQUIRED"
				timeout="-1" rollback-for="java.lang.Exception" />
			<tx:method name="upd*" isolation="DEFAULT" propagation="REQUIRED"
				timeout="-1" rollback-for="java.lang.Exception" />
		</tx:attributes>
	</tx:advice>
       <!--execution中execute表示包含这个包中的所有方法,不管参数和返回类型,而且是该包下的所有类-->
	<aop:config expose-proxy="false" proxy-target-class="false">
		<aop:pointcut expression="execution(* com.ly.service..*.*(..))"
			id="txcut" />
		<aop:advisor advice-ref="txadvice" pointcut-ref="txcut" />
	</aop:config>
</beans>

 

strutrs.xml配置信息:

 

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
	<package name="default" extends="struts-default">
		<!-- class中的useraction是spring的ID为useraction的id名 -->
		<action name="useraction*" class="useraction" method="{1}">
			<result>/index.jsp</result>
		</action>
	</package>
</struts>  

  

 

 

   oracle.properties配置信息:

 

 

jdbc.username=数据库账号
jdbc.password=数据库密码
jdbc.url=jdbc:oracle:thin:@localhost:1521:orcl
jdbc.driver=oracle.jdbc.driver.OracleDriver

 

 

5.User.java源码:(POJO类)

 

package com.ly.model;

public class User {
	private String username;
	private String password;
	private Integer age;
//生成相应的set  get 方法
}

 

 


 6.UserMapper.java接口 和xml映射文件关联 代码

 

 

package com.ly.mapper;

import java.util.List;

import com.ly.model.User;

public interface UserMapper {
	List<User> selectUser(User user);
}

 mapper映射文件代码:

 

<?xml version="1.0" encoding="UTF-8" ?> 
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" 
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ly.mapper.UserMapper">
	<!-- id就是UserMapper接口中的方法名,parameterTYpe就是传入的参数类型,resultType为输出类型 -->
	<select id="selectUser" parameterType="User" resultType="User">
		select * from user where username=#{username}
	</select>
</mapper>

<!-- select 语句属性配置细节: 
属性	描述	取值	默认
id	在这个模式下唯一的标识符,可被其它语句引用		
parameterType	传给此语句的参数的完整类名或别名		
resultType	语句返回值类型的整类名或别名。注意,如果是集合,那么这里填写的是集合的项的整类名或别名,而不是集合本身的类名。(resultType 与resultMap 不能并用)		
resultMap	引用的外部resultMap 名。结果集映射是MyBatis 中最强大的特性。许多复杂的映射都可以轻松解决。(resultType 与resultMap 不能并用)		
flushCache	如果设为true,则会在每次语句调用的时候就会清空缓存。select 语句默认设为false	true|false	false
useCache	如果设为true,则语句的结果集将被缓存。select 语句默认设为false true|false false
timeout 设置驱动器在抛出异常前等待回应的最长时间,默认为不设值,由驱动器自己决定	true|false	false
timeout 	设置驱动器在抛出异常前等待回应的最长时间,默认为不设值,由驱动器自己决定	正整数	未设置
fetchSize	设置一个值后,驱动器会在结果集数目达到此数值后,激发返回,默认为不设值,由驱动器自己决定	正整数	驱动器决定
statementType	statement,preparedstatement,callablestatement。
预准备语句、可调用语句	STATEMENT
PREPARED
CALLABLE	PREPARED
resultSetType	forward_only,scroll_sensitive,scroll_insensitive
只转发,滚动敏感,不区分大小写的滚动	FORWARD_ONLY
SCROLL_SENSITIVE
SCROLL_INSENSITIVE	驱动器决定
 -->

 然后在 UserService接口中定义一个方法:

 

List<User> selectUser(User user);

 用来查询sql操作,并返回结果集,然后在impl实现类中实现该方法。

UsererviceImpl.java类:

package com.ly.service.impl;
import java.util.List;
import com.ly.mapper.UserMapper;
import com.ly.model.User;
import com.ly.service.UserService;
public class UserServiceImpl implements UserService{
	private UserMapper usermapper;
//生成set  get 方法
	@Override
	public List<User> selectUser(User user) {
		return usermapper.selectUser(user);
	}}

 

实现了selectUser方法后,并返回结果集,然后应在action类中接收该返回集合

UserAction.java   :

 

package com.ly.action;

import java.util.Map;
import org.apache.struts2.interceptor.SessionAware;
import com.ly.model.User;
import com.ly.service.UserService;
import com.opensymphony.xwork2.ActionSupport;
public class UserAction extends ActionSupport implements SessionAware {
	private Map<String, Object> session;
	private UserService userservice;
	private User user;
        private List<User> list;
     //.......相应的set  get 方法
	@Override
	public String execute() throws Exception {
		list=userservice.selectUser(user);//struts会自动存入request作用域
		return SUCCESS;
	}}

 

index.jsp代码:

 

<%@ page language="java" import="java.util.*" pageEncoding="utf8"%>
<%
	String path = request.getContextPath();
	String basePath = request.getScheme() + "://"
			+ request.getServerName() + ":" + request.getServerPort()
			+ path + "/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">

<title>My JSP 'index.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<script type="text/javascript">
	function look(){
		var val=prompt("请输入用户名:","");
		if(val!=null && val!=""){
			var f=document.getElementById("f");
			f.action="useraction.action?user.username="+val;//默认调用execute()方法,user.username  struts会自动得到
			f.submit();
		}
	}
</script>
</head>

<body>
	<center>
		<form id="f" method="post">
			<input type="button" value="点击查询用户" onclick="look()"/>
		</form>
	</center>
</body>
</html>

  show.jsp 为显示结果的页面,代码:

 

 

<%@ page language="java" import="java.util.*" pageEncoding="utf8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<%@taglib prefix="c" uri="http://java.sun.com/jstl/core_rt" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'show.jsp' starting page</title>
    
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
  </head>
  
  <body>
    <center>
    	<table>
    		<tr>
    			<th>用户名</th>
    			<th>年龄</th>
    		</tr>
                <!-- list中存在的泛型为User -->
    		<c:forEach items="${list}" var="i">
    			<tr>
    				<td>$i.username}</td>
    				<td>${i.age}</td>
    			</tr>
    		</c:forEach>
    	</table>
    </center>
  </body>
</html>

<!-- 查询出来的结果 显示在这JSP上 -->

 

 

 

0
0
分享到:
评论

相关推荐

    Spring 3.0+Struts2+Mybatis 3 + p6spy 平台框架

    这是自己整合的Spring 3.0+Struts2+Mybatis 3 + p6spy +ehcache的平台框架,内含一点示例代码,目前ehcache没有使用。直接编译后发布就能用 测试环境基于JDK1.6+Tomcat 6.0. 大家拿到后请根据实际情况修改 ...

    隐患排查系统源码+项目说明+数据库(基于Spring3.2+Struts2.3+Mybatis+Mysql5.7).zip

    【资源说明】 1、该资源包括项目的全部源码,下载可以直接使用! 2、本项目适合作为计算机、数学、电子信息等专业的课程设计、期末...隐患排查系统源码+项目说明+数据库(基于Spring3.2+Struts2.3+Mybatis+Mysql5.7)...

    spring+struts2+hibernate+mybatis

    一个简单的spring+struts2+hibernate+mybatis整合(数据库脚本放在项目资源文件的sql目录下) 因为没想好mvc用springmvc好,还是struts2好 所以没有整合进去

    mybatis3.0+spring3.0+struts2整合开发的一个小权限管理系统

    mybatis3.0+spring3.0+struts2整合开发的一个小权限管理系统,里面有搜索提示功能,导入导出excel文件,ajax异步刷新,拦截器控制,freemarker等,表关系很复杂,特附上表关系图

    spring3.0+struts2.0+mybatis3.2+jta+xapool配置文件示例

    本示例"spring3.0+struts2.0+mybatis3.2+jta+xapool配置文件"就是一个典型的Java企业级应用的集成框架,用于实现数据持久层、业务逻辑层以及控制层的整合。以下将详细介绍这些组件及其配置要点。 **Spring 3.0** 是...

    Struts2+Spring3.0+MyBatis3.0平台搭建spring+json+gson+mysql,经典版本spring3.0+,完整架包

    标题中的"Struts2+Spring3.0+MyBatis3.0平台搭建"涉及到的是一个常见的企业级Java Web开发框架组合。这个平台基于Struts2作为MVC框架,Spring3.0作为核心容器,负责依赖注入(DI)和面向切面编程(AOP),而MyBatis...

    spring3.0+struts2+mybatis3.0整合

    本话题主要关注的是"Spring 3.0"、"Struts 2" 和 "MyBatis 3.0" 这三大主流Java开源框架的集成,以实现增、删、查、改(CRUD)以及LIKE查询等基本功能。下面我们将详细探讨这些框架各自的功能以及它们如何协同工作。...

    SSM框架整合(Struts 2.1+Spring 3.0+MyBatis 3.06)

    SSM框架整合,使用最新版MyBatis-Jar包(Struts2.1+Spring3.0+MyBatis3.06) 下载之后执行.sql文件创建表和sequence 记得改数据库访问地址以及数据库登录用户名密码 项目访问路径 localhost:8080/SSI_Demo2 一个...

    Myeclipse10搭建Flex4.6+spring3.0+mybatis3.2架构

    在本文中,我们将探讨如何使用Myeclipse10搭建Flex4.6、Spring3.0和Mybatis3.2的架构。这个架构是企业级开发中常见的技术组合,它允许开发者构建高性能、可扩展且易于维护的富互联网应用程序(RIA)。 1. **Flex4.6...

    Struts+Spring+Mybatis+EasyUI(jQuery)注解案例

    Struts+Spring+Mybatis+EasyUI(jQuery)注解案例。采用注解的方式跟踪代码依赖性,实现替代配置文件功能。里面包含了平时用的增删改查及分页,分页查询时用的是存储过程,提高了数据库的性能。代码简单、易懂。

    Spring4.0+SpringMVC4.0+Mybatis3.2框架整合例子(SSM) 自动生成代码

    SSM框架整合是Java开发中常见的技术组合,包括Spring 4.0、Spring MVC 4.0和Mybatis 3.2。这三个框架的结合提供了强大的企业级应用开发能力,涵盖了依赖注入、Web层处理和数据访问等多个层面。下面将详细讲解这三个...

    基于SpringBoot+Spring+SpringMvc+Mybatis+Shiro+Redis 开发单点登录管理系统源码

    基于 SpringBoot + Spring + SpringMvc + Mybatis + Shiro+ Redis 开发单点登录管理系统 基于 SpringBoot + Spring + SpringMvc + Mybatis + Shiro+ Redis 开发单点登录管理系统 基于 SpringBoot + Spring + ...

    基于注解的Spring+Struts2+Mybatis+Maven项目

    【基于注解的Spring+Struts2+Mybatis+Maven项目详解】 在现代Web开发中,Spring、Struts2、Mybatis和Maven是四个非常重要的组件,它们各自负责不同的职责,共同构建了一个高效、灵活且易于维护的Java Web应用。这个...

    SpringBoot+SpringCloud+nacos+gateway+mybatis搭建微服务

    在构建分布式系统时,Spring Boot、Spring Cloud、Nacos、Gateway和MyBatis这五大组件是常见的技术选型。下面将详细阐述它们的功能、如何整合以及在微服务架构中的作用。 1. Spring Boot:作为核心启动框架,Spring...

    struts2+Spring3.0+Mybatis组合(纯注解方式)

    Struts2、Spring3.0和Mybatis是Java Web开发中的三大框架,它们组合在一起能够构建出高效、灵活的企业级应用程序。在这个半成品项目中,全部依赖于注解来简化配置,提供更简洁的代码结构。 **Struts2** 是一个基于...

    struts2+spring+mybatis+easyui的实现

    总的来说,"struts2+spring+mybatis+easyui"的实现是一个标准的Java Web项目结构,它利用Maven进行构建管理,通过整合四个组件,实现了后端的业务逻辑处理、数据访问和前端的用户界面展示。这种架构在实际开发中具有...

    Spring3.0+struts2+Mybatis3.2集成联表操作

    最近要用到Mybatis,在网上找了很久,很少有提到联表查询具体该怎么操作的,这里做了一个联表操作的例子,跟大家分享,数据库用的是oracle,表没有上传,在oracle里面的scott用户里面,有emp和dept表,这里是完全一模一样的,...

    Spring3.0+Struts2+Mybatis3

    附件有3个project,分三个步骤对SSMy进行了搭建,先是struts2,再进行spring整合struts,第三个整合mybatis,以及注释,到数据库mysql,给正在初学的和已经忘记怎么搭建框架的coder,共享

    idea14+maven+struts+spring+mybatis框架

    标题 "idea14+maven+struts+spring+mybatis框架" 描述的是一个使用IntelliJ IDEA 14集成开发环境,结合Maven构建工具,以及SSH(Struts、Spring、Hibernate)经典企业级开发框架,并融入MyBatis持久层框架的项目。...

Global site tag (gtag.js) - Google Analytics