S2SH合并DAO层与service层

本文介绍了如何在S2SH框架下合并Service层和DAO层,提供了一种两层结构的解决方案。首先,通过创建Action类、DaoSupport接口及其实现类,然后实现增删改查的功能步骤,包括Action、Service和页面填充的准备工作。具体流程包括Action类的配置、Service接口和实现类的编写,以及JSP页面的修改。最后展示了BaseAction、DaoSupport接口、DaoSupportImpl抽象类、UserAction类、UserService接口和UserServiceImpl实现类的代码示例。
摘要由CSDN通过智能技术生成


合并service和dao层,分俩层,即合并service层与Dao层为service层
准备有: 
先实现Action类,DaoSupport接口,DaoSupportImpl类


一、 流程总结: 实现增删该查一组功能的步骤:
1. 做Action相关的准备:
a. 创建MyAction继承BaseAction
b. 定义Action中的方法,要写出方法名、作用、返回值
c. 创建所用到的JSP页面,空的未实现
d. 配置Action,在MyAction中加@Controller和@Scope("prototype")注解
e. 配置struts.xml
f. 测试
2. 做Service相关的准备:接口,实现类,配置
a. 创建接口MyService继承DaoSupport接口
b. 创建实现类MyServiceImpl继承DaoSupportImpl类
c. 在MyServiceImpl上写注解: @Service和@Transactional

3. 填空
a. Action方法
b. 新增的service方法
c. 修改jsp页面的内容: 拷贝写好的前端源代码,引入公共页面,修改路径,修改标签内容



二、 案例如下:


BaseAction类:
-------------------------------------------------------------------------------------------
package cn.itcast.oa.base;


public class BaseAction<T> extends ActionSupport implements ModelDriven<T>{                 


// 声明service
@Resource
protected DepartmentService departmentService;
@Resource
protected RoleService roleService;

// 对modelDriven的支持
protected T model;
public T getModel() {
return model;
}


// 获取泛型的具体类型
public BaseAction(){
try {
// 通过反射获取T的真实类型
ParameterizedType pt = (ParameterizedType) this.getClass().getGenericSuperclass();
Class<T> clazz = (Class<T>) pt.getActualTypeArguments()[0];
// 通过反射创建model的实例
model = clazz.newInstance();
} catch (Exception e) {
throw new RuntimeException(e);
}
}

}


-------------------------------------------------------------------------------------------



DaoSupport接口:
-------------------------------------------------------------------------------------------

// 定义通用的dao接口,里面包含常用的基本方法。
// 使用泛型其他dao接口继承该接口即可。
// 如果子接口中有另外的方法,则独自定义
public interface DaoSupport<T> {


/**
* 添加实体

* @param entity
*/
void save(T entity);



/**
* 删除实体

* @param id
*/
void delete(Long id);



/**
* 更新实体

* @param entity
*/
void update(T entity);



/**
* 根据id查询实体

* @param i
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值