本文以简单人事管理系统为基础.介绍手动方式配置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);
}
}
分享到:
相关推荐
Maven+spring+ struts2+ Ibatis+mysql整合增删改查
flex+spring+struts2+ibatis 整合的eclipse工程,可以导入eclipse环境下直接使用,因为加入开发的jar大于了上传的最大限制,只能把jar另外打包上传,下载可以从我上传资源的lib1,lib2下载,这个工程的搭建花费了我两...
使用ibatis+spring+struts2 做的开发例子 帮助大家一起学习ibatis的整合
是将struts2+spring3+iBATIS进行整合。
NULL 博文链接:https://sunxiang0918.iteye.com/blog/269771
struts2+spring+ibatis整合项目实例
maven3+struts2+spring+ibatis,本来是用maven3+struts2+spring+hibernate但考虑到hibernate在多表级联查询的时候执行效率不高,所以改用性能更好不过sql比较麻烦的的ibatis,本项目只有登录和插入数据,仅供参考: ...
Spring+struts2+ibatis整合demo,包括源代码,jar包等,此demo非maven项目,由于是以前整理的,可能有些老,但适合学习。
一个完整的Spring+ Struts+Ibatis 应用框架整合的小例子,项目中使用的数据库为MySQL,表结构在文档贴出,可以自己照着例子做一下。
maven构建项目,简单的struts2、spring、mybatis结构实现,页面展示用的easyui
Struts2 Spring Ibatis实例整合 里面实现了用户登录注册查询删除 认真体会里面的架构
Struts2+Spring+Ibatis ,里面实现了登录功能, 可供初学者学习,代码很详细, 注释很多, 还可以用于做项目
项目需要,可直接拿来用。本人花了一个礼拜心血搞的。有点,如果是发布到tomcat55上面可能要删掉验证xml的jar包才能正确运行
struts2+ibatis+spring+Hessian 整合项目 web项目整合,服务端用hessian协议远程调用服务端的方法,hessian是用spring代理整合,struts2+ibatis+spring的整合项目,用作学习和开发基础平台构建很有用处,工程导入...
目标:WEB项目-集成Flex3+BlazeDS3.2+Spring2.5.6+iBatis2.3.4+Struts2.1.8,重在整合Spring与Struts2,并采用托管的方式,即Struts2 action托管于Spring 优点:这是一种保守的混合开发模式,既充分利用了原有的...
博文链接:https://klygit.iteye.com/blog/215011
Struts2+Spring+Ibatis项目
这是一个struts2+spring+ibatis项目中需要的jar包,其中包括很多其他包,例如:发邮件需要的包,dwr包,等。
struts2 spring ibatis 项目整合源码
struts1 spring ibatis整合项目源码struts1 spring ibatis整合项目源码struts1 spring ibatis整合项目源码struts1 spring ibatis整合项目源码struts1 spring ibatis整合项目源码struts1 spring ibatis整合项目源码