`
sunxiang0918
  • 浏览: 46704 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

Spring+Struts2+IBatis 项目整合(一)

    博客分类:
  • J2EE
阅读更多

本文以简单人事管理系统为基础.介绍手动方式配置Spring+Struts2+Ibatis的项目基本框架

 

 

首先,用MyEclipse 新建一个web project

 

一.Ibatis

先是Ibatis的配置:

 1.把ibatis-2.3.4.726.jar复制到项目的WEB-INFO/lib下 刷新eclipse

 2.建立ibatis的包,在此 我创建了 com.dbke.hrms.ibatis.map包.

 3.在包中新建一个 dept.xml 内容如下:

 

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE sqlMap PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN"
    "http://ibatis.apache.org/dtd/sql-map-2.dtd">

<sqlMap namespace="deptEntity">
	<typeAlias alias="employee"
		type="com.dbke.hrms.ibatis.domain.TEmployee" />
	<typeAlias alias="dept" type="com.dbke.hrms.ibatis.domain.TDept" />
	
	<resultMap id="get-dept-result" class="dept">
	<result property="IDeptId" column="DEPTID" jdbcType="int" javaType="java.lang.Integer" />
	<result property="vcDeptCode" column="DEPTCODE" jdbcType="VARCHAR(30)" javaType="java.lang.String" />
	<result property="vcDeptName" column="DEPTNAME" jdbcType="VARCHAR(10)" javaType="java.lang.String" />
	<result property="vcDeptAddress" column="ADDRESS" jdbcType="VARCHAR(50)" javaType="java.lang.String" />
	<result property="vcDeptTelphone" column="TELPHONE" jdbcType="VARCHAR(20)" javaType="java.lang.String" />
	<result property="vcDeptDesc" column="DESC" jdbcType="VARCHAR(255)" javaType="java.lang.String" />
	<result property="employees" column="DEPTID" select="findEmpByDeptId" />
	</resultMap>
	
	<parameterMap id="insert-dept-full-paramter" class="dept" >
		<parameter property="IDeptId" jdbcType="int"/>
		<parameter property="vcDeptCode" jdbcType="VARCHAR(30)"/>
		<parameter property="vcDeptName" jdbcType="VARCHAR(10)"/>
		<parameter property="vcDeptAddress" jdbcType="VARCHAR(50)"/>
		<parameter property="vcDeptTelphone" jdbcType="VARCHAR(20)"/>
		<parameter property="vcDeptDesc" jdbcType="VARCHAR(255)"/>
	</parameterMap>
	
	<select id="findDeptById" parameterClass="int" resultMap="get-dept-result">
     	select * 
     	from T_DEPT as dept
     	<dynamic prepend="WHERE">
     		<isNotEmpty property="value">dept.DEPTID= #value#</isNotEmpty>   		
     	</dynamic> 
	</select>
	
	<select id="findEmpByDeptId" parameterClass="int"
		resultClass="employee">
		<![CDATA[
     	select emp.EMPID as IEmpId,emp.EMPNAME as vcEmpName,emp.GENDER as IEmpGender,emp.AGE 
       as IEmpAge ,emp.IDCARD as vcEmpIdCard,emp.PARTY as vcEmpParty,emp.SCHOOL 
       as vcEmpSchool,emp.MAJOR as vcEmpMajor,emp.TITLE as vcEmpTitle,emp.POST as vcEmpPost
     	from T_EMPLOYEE as emp  
     	where emp.DEPTID= #value#
      ]]>
	</select>
	
	<select id="findDeptByName" parameterClass="java.lang.String"
		resultMap="get-dept-result">
		select * 
     	from T_DEPT as dept
     	<dynamic prepend="WHERE">
     		<isNotEmpty property="value">dept.DEPTNAME= #value#</isNotEmpty>   		
     	</dynamic> 
	</select>
	
	<select id="findDeptByDeptCode" parameterClass="java.lang.String"
		resultMap="get-dept-result">
		select * 
     	from T_DEPT as dept
     	<dynamic prepend="WHERE">
     		<isNotEmpty property="value">dept.DEPTCODE= #value#</isNotEmpty>   		
     	</dynamic> 
	</select>
	
	<insert id="insertDept" parameterMap="insert-dept-full-paramter">
		insert into T_DEPT (
			DEPTID,DEPTCODE,DEPTNAME,ADDRESS,TELPHONE,`DESC`
		) values(
			?,?,?,?,?,?
		)	
	</insert>
</sqlMap>

 4.建立包 com.dbke.hrms.ibatis.domain 并建立PO类 TDept.java :

 

package com.dbke.hrms.ibatis.domain;

import java.util.List;

public class TDept {

	private Integer IDeptId;		//部门ID
	
	private String vcDeptCode;		//部门编号
	
	private String vcDeptName;		//部门名称
	
	private String vcDeptAddress;		//部门地址
	
	private String vcDeptTelphone;		//部门电话
	
	private String vcDeptDesc;		//部门简介
	
	private List<TEmployee> employees;	//部门所属员工

	public Integer getIDeptId() {
		return IDeptId;
	}

	public void setIDeptId(Integer deptId) {
		IDeptId = deptId;
	}

	public String getVcDeptCode() {
		return vcDeptCode;
	}

	public void setVcDeptCode(String vcDeptCode) {
		this.vcDeptCode = vcDeptCode;
	}

	public String getVcDeptName() {
		return vcDeptName;
	}

	public void setVcDeptName(String vcDeptName) {
		this.vcDeptName = vcDeptName;
	}

	public String getVcDeptAddress() {
		return vcDeptAddress;
	}

	public void setVcDeptAddress(String vcDeptAddress) {
		this.vcDeptAddress = vcDeptAddress;
	}

	public String getVcDeptTelphone() {
		return vcDeptTelphone;
	}

	public void setVcDeptTelphone(String vcDeptTelphone) {
		this.vcDeptTelphone = vcDeptTelphone;
	}

	public String getVcDeptDesc() {
		return vcDeptDesc;
	}

	public void setVcDeptDesc(String vcDeptDesc) {
		this.vcDeptDesc = vcDeptDesc;
	}

	public List<TEmployee> getEmployees() {
		return employees;
	}

	public void setEmployees(List<TEmployee> employees) {
		this.employees = employees;
	}
	
	
}

 

5.创建 com.dbke.hrms.ibatis.dao 并创建 数据库dao接口 TDeptDao.java:

 

package com.dbke.hrms.ibatis.dao;

import java.util.List;

import com.dbke.hrms.ibatis.domain.TDept;

public interface TDeptDao {
	
	/**
	 * 查找所有的部门
	 * @return
	 */
	public List<TDept> findAllDept();
	
	/**
	 * 根据部门Id 查找特定部门
	 * @param deptId
	 * @return
	 */
	public TDept findDeptById(Integer deptId);
	
	/**
	 * 根据部门名称 查找特定部门
	 * @param deptName
	 * @return
	 */
	public TDept findDeptByName(String deptName);
	
	/**
	 * 根据部门编号 查找特定部门
	 * @param deptCode
	 * @return
	 */
	public TDept findDeptByCode(String deptCode);
	
	/**
	 * 新插入一个部门
	 * @param dept
	 * @return
	 */
	public Integer insertDept(TDept dept);
	
}

 6.在com.dbke.hrms.ibatis.dao.impl 实现这个接口,TDeptDaoImpl.java:

 

package com.dbke.hrms.ibatis.dao.impl;

import java.util.List;

import com.dbke.hrms.ibatis.dao.TDeptDao;
import com.dbke.hrms.ibatis.domain.TDept;

import org.springframework.dao.DataAccessException;
import org.springframework.orm.ibatis.support.SqlMapClientDaoSupport;

public class TDeptDaoImpl extends SqlMapClientDaoSupport implements TDeptDao {

	@SuppressWarnings("unchecked")
	@Override
	public List<TDept> findAllDept() {
		// TODO Auto-generated method stub
		return (List<TDept>)getSqlMapClientTemplate().queryForList("findDeptById");
	}

	@Override
	public TDept findDeptById(Integer deptId) throws DataAccessException {
		// TODO Auto-generated method stub
		return (TDept)getSqlMapClientTemplate().queryForObject("findDeptById",deptId);
	}

	@Override
	public Integer insertDept(TDept dept) {
		// TODO Auto-generated method stub
			return (Integer)getSqlMapClientTemplate().insert("insertDept", dept);
	}

	@Override
	public TDept findDeptByName(String deptName) {
		// TODO Auto-generated method stub
		return (TDept)getSqlMapClientTemplate().queryForObject("findDeptByName",deptName);
	}

	@Override
	public TDept findDeptByCode(String deptCode) {
		// TODO Auto-generated method stub
		return (TDept)getSqlMapClientTemplate().queryForObject("findDeptByDeptCode",deptCode);
	}
	

}
 

 

分享到:
评论
3 楼 ray_java 2009-09-26  
[main] org.springframework.web.struts.ContextLoaderPlugIn init- Context initialization failed
org.springframework.beans.factory.BeanDefinitionStoreException: Error registering bean with name 'dataSource' defined in ServletContext resource [/WEB-INF/classes/spring.xml]: Bean class [org.apache.commons.dbcp.BasicDataSource] not found; nested exception is java.lang.ClassNotFoundException: org.apache.commons.dbcp.BasicDataSource
java.lang.
2 楼 sunxiang0918 2008-11-28  
org.apache.commons.dbcp.BasicDataSource

你确定依赖库是放正确了的?
没有冲突?

你可以参照我发上去的依赖库清单 试一试
1 楼 liaobinxu 2008-11-27  
哈哈,老子找到你的blog了哈!!!没得办法我到处找关于异常
ERROR [main] org.springframework.web.struts.ContextLoaderPlugIn init- Context initialization failed
org.springframework.beans.factory.BeanDefinitionStoreException: Error registering bean with name 'dataSource' defined in ServletContext resource [/WEB-INF/classes/spring.xml]: Bean class [org.apache.commons.dbcp.BasicDataSource] not found; nested exception is java.lang.ClassNotFoundException: org.apache.commons.dbcp.BasicDataSource
java.lang.ClassNotFoundException: org.apache.commons.dbcp.BasicDataSource

相关推荐

    spring+struts2+ibatis整合的jar包

    总的来说,Spring、Struts2和iBatis的整合为Java Web开发提供了一个强大、灵活的解决方案,让开发者能够更专注于业务逻辑,而不是框架的底层实现。通过合理的配置和使用这个jar包,开发者可以快速构建出稳定、高性能...

    flex+spring+struts2+ibatis 整合的eclipse工程

    flex+spring+struts2+ibatis 整合的eclipse工程,可以导入eclipse环境下直接使用,因为加入开发的jar大于了上传的最大限制,只能把jar另外打包上传,下载可以从我上传资源的lib1,lib2下载,这个工程的搭建花费了我两...

    Spring+Struts2+IBatis 项目整合(四)

    在本项目整合中,我们将探讨如何将三个著名的技术框架——Spring、Struts2和IBatis——集成在一起,创建一个高效且灵活的企业级Web应用程序。这个整合通常被称为SSH(Spring、Struts2、Hibernate或iBatis)框架栈,...

    Spring+Struts2+Ibatis整合例子

    但是,你可以参考上述的整合步骤,结合实际的项目需求,配置自己的Spring、Struts2和iBatis环境。记得在配置文件中仔细设置各个框架的连接,以确保它们能够协同工作。在开发过程中,合理利用这三个框架的优点,可以...

    Maven+spring+ struts2+ Ibatis+mysql整合增删改查

    "Maven+Spring+Struts2+Ibatis+MySQL"就是一个常见的企业级Java Web开发组合,它们各自扮演着不同的角色,共同构建了一个功能强大的应用程序。下面我们将详细探讨这些技术及其在整合中的作用。 **Maven** Maven是...

    spring3+struts2+ibatis

    Spring3、Struts2和Ibatis的整合,构建了一个完整的MVC+持久层架构。Spring作为整个应用的调度中心,管理所有对象的生命周期,包括Struts2的Action和Ibatis的SqlSession。Struts2负责接收HTTP请求,调用Action执行...

    Spring+Struts2+Ibatis

    在"Spring+Struts2+Ibatis"的整合中,通常会使用Spring作为整个应用的基础架构,提供DI和AOP功能,管理Struts2的Action和iBatis的SqlSession。Struts2作为前端控制器,处理HTTP请求,调用Spring管理的Service层方法...

    Spring+Struts+ibatis讲解

    Spring+Struts+ibatis的整合使得各层之间解耦,提高了代码的可维护性和可扩展性。Spring负责管理对象的生命周期和依赖关系,Struts2提供了MVC架构,而Ibatis作为持久层框架,简化了数据库操作。这样的架构在过去的...

    struts2+spring+Ibatis框架包

    Struts2、Spring和iBatis是Java Web开发中三个非常重要的开源框架,它们共同构建了一个灵活、可扩展且高效的应用程序开发环境。这个“struts2+spring+iBatis框架包”集成了这三个框架,使得开发者能够快速构建基于...

    spring+struts+ibatis

    - lib:存放项目所需的第三方库,如Spring、Struts2、iBatis和ExtJS的jar包。 整合SSM框架需要正确配置各个框架的配置文件,确保它们之间能够协同工作。例如,Spring需要配置Bean定义,Struts2需要配置Action和...

    spring+struts2+ibatis简单例子

    在IT行业中,Spring、Struts2和iBatis是三个非常重要的开源框架,它们分别在不同的层面上解决了Java Web开发中的问题。Spring作为一款全面的后端应用框架,提供了依赖注入(DI)和面向切面编程(AOP)等功能;Struts...

    struts2+spring3+ibatis项目整合案例

    在这个“struts2+spring3+ibatis项目整合案例”中,我们将深入探讨这三个框架如何相互配合,实现项目的集成。 Struts2作为MVC(Model-View-Controller)架构的实现,主要负责处理用户请求,控制应用的流程。它提供...

    ibatis+spring+struts2 整合开发例子

    "ibatis+spring+struts2 整合开发例子"就是一个典型的Java Web应用集成开发案例,旨在帮助开发者理解和掌握这三大框架的协同工作原理。接下来,我们将详细讨论这三个组件以及它们的整合过程。 Ibatis是一个轻量级的...

    ibatis+Spring+struts2整合实例

    本实例关注的是“ibatis+Spring+struts2”的整合,这是一个经典的Java Web开发组合,用于实现数据访问、业务逻辑控制和用户界面交互。下面我们将深入探讨这三个组件及其整合的关键知识点。 1. **iBATIS**:iBATIS...

    struts2+spring+ibatis整合项目实例

    `Struts+Spring+Ibatis整合框架搭建配置文档.doc`应该详细阐述了如何配置Spring以管理Struts2的Action和iBatis的数据源及SqlSession。 3. **iBatis**:iBatis是一个SQL映射框架,它将SQL语句与Java代码分离,使得...

    maven3+struts2+spring+ibatis

    maven3+struts2+spring+ibatis,本来是用maven3+struts2+spring+hibernate但考虑到hibernate在多表级联查询的时候执行效率不高,所以改用性能更好不过sql比较麻烦的的ibatis,本项目只有登录和插入数据,仅供参考: ...

    Spring + Struts2 + iBatis + Eclipse 整合

    【Spring + Struts2 + iBatis + Eclipse 整合】是Java Web开发中的经典组合,这个整合项目为初学者提供了深入理解这四个组件协同工作的机会。以下将详细阐述这四个关键技术及其整合过程中的关键知识点。 1. Spring...

    Struts2+Spring+Hibernate和Struts2+Spring+Ibatis

    Struts2+Spring+Hibernate和Struts2+Spring+Ibatis是两种常见的Java Web应用程序集成框架,它们分别基于ORM框架Hibernate和轻量级数据访问框架Ibatis。这两种框架结合Spring,旨在提供一个强大的、可扩展的、易于...

    Struts+Spring+Ibatis整合的Jar包

    这个"SSI"整合的Jar包,为开发者提供了一个快速搭建基于Struts2、Spring和Ibatis的开发环境,节省了手动下载和配置各个框架的时间,便于项目初始化和快速启动。开发者只需关注业务逻辑的实现,无需过多关注底层框架...

    Spring+struts2+ibatis整合demo

    在整合Struts2和iBatis时,Spring可以作为容器来管理和注入这些框架中的bean。例如,我们可以使用Spring配置文件来声明Struts2的动作类和iBatis的SqlSessionFactory,并通过@Autowired注解实现自动装配。 Struts2是...

Global site tag (gtag.js) - Google Analytics