日期:2014-05-16  浏览次数:20582 次

SSI的整合七部曲 -- 1、Struts2实现通过JDBC的CURD

????? 本人QQ: 949507869! 实现过程有问题可以添加交流,但必须有附件信息且为项目名,如StrutsJDBC

?

????? 补充性知识: Web应用分层及Action的执行流程

??????Web应用的体系结构,主要体现在以下三个逻辑区域:

????????? 1. 表示层(Persentation layer),它是控制前段的页面和发送结果,也称视图

????????? 2. 控制层(Control layer), 它控制应用流程,也称控制器

????????? 3. 应用逻辑层(Application login layer), 它管理应用数据,执行计算和联系后台资源(数据库),也称模型

?????????

????????? 各层的联系如下图(虚线表示特殊条件产生的联系)???
???????????
?????????
?

????? 问题分析、解决思路

????? 问题分析: 用Struct2通过JDBC实现emp表的CURD(create、update、read、delete)

????? 解决思路:?结合MVC三层结构及模仿Hibernate的数据持久化技术

????? 操作步骤:

??????? 1、启动相应的数据库服务,不清楚的请点此处说明

??????? 2、启动MyEclipse,编码

??????????? 2-1. 新建项目StrutsJDBC, 并在项目的lib包里添加以下jar包
?????????????
????????????

??????????? 2-2. 在web.xml里配置过滤器

	<!-- begin Filter struts2 -->
	<filter>
		<filter-name>struts2</filter-name>
		<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
	</filter>
	<filter-mapping>
		<filter-name>struts2</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>
	<!-- end Filter struts2 -->

?????????????? 问题一filter-class的获取方式

??????????? ???解决方法:如图! 篇幅受限,看不清楚的自行下载查看

?????????????????????

????????????2-3.?把emp表对象映射成Emp.java的JavaBean。代码如下

package entities;

import java.util.Date;

/**
 * <dl>
 * 	<dt><b>Description:</b></dt>
 * 	<dd>
 * 		a JavaBean of table employee
 * 		</br>
 * 		</br><em>Copyright? 2011-2014  E.T.Crazy</em> 
 * 	</dd>
 * </dl>                                                                                                                       
 * @version   2012-4-17
 * @author    E.T.Crazy                                                                                                     
 */
public class Emp {

	// Fields of employee
	private	int	empno;			// 雇员编号
	private String	ename;			// 登录名
	private String	job;			// 雇员职务
	private int 	mgr;			// 雇员经理的编号
	private Date	hiredate;			// 雇佣日期
	private float	sal;			// 雇员工资
	private float	comm;			// 雇员津贴
	private int		deptno;			// 雇员所在的部门编号
		
	// Constructor
	/** default constructor */
	public Emp(){
		
	}
	
	/** full constructor */
	public Emp(int eno, String ena, String job, int mgr, Date hire, float sal, float comm, int deptno){	
		this.empno 	= eno;
		this.ename 	= ena;
		this.job	= job;
		this.mgr	= mgr;
		this.hiredate	= hire;
		this.sal	= sal;
		this.comm	= comm;
		this.deptno	= deptno;		
	}
	
	// Property access	
	public int getEmpno() {
		return empno;
	}	
	public void setEmpno(int empno) {
		this.empno = empno;
	}
	public String getEname() {
		return ename;
	}
	public void setEname(String ename) {
		this.ename = ename;
	}
	public String getJob() {
		return job;
	}
	public void setJob(String job) {
		this.job = job;
	}
	public int getMgr() {
		return mgr;
	}
	public void setMgr(int mgr) {
		this.mgr = mgr;
	}
	public Date getHiredate() {
		return hiredate;
	}
	public void setHiredate(Date hiredate) {
		this.hiredate = hiredate;
	}
	public float getSal() {
		return sal;
	}
	public void setSal(float sal) {
		this.sal = sal;
	}
	public float getComm() {
		return comm;
	}
	public void setComm(float comm) {
		this.comm =