博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
baseAction,baseDao,baseService
阅读量:6757 次
发布时间:2019-06-26

本文共 4152 字,大约阅读时间需要 13 分钟。

SSH的

baseAction

简单叙述下作用

1.通用方法如增删改,获取表格,获取树等等常用方法

2.其他action继承baseAction达到基本不写代码或少写代码,使其他action具有baseAction的方法,同时可以自己特有的方法

上代码

@ParentPackage("default")@Namespace("/")public class BaseAction
extends ActionSupport { private static final Logger logger = Logger.getLogger(BaseAction.class); protected int page = 1;// 当前页 protected int rows = 10;// 每页显示记录数 protected String sort;// 排序字段 protected String order = "asc";// asc/desc protected String q;// easyui的combo和其子类过滤时使用 protected String id;// 主键 protected String ids;// 主键集合,逗号分割 protected T data;// 数据模型(与前台表单name相同,name="data.xxx") protected BaseServiceI
service;// 业务逻辑   /**      * 获得request      *      * @return      */     public HttpServletRequest getRequest() {
        return ServletActionContext.getRequest();     }     /**      * 获得response      *      * @return      */     public HttpServletResponse getResponse() {
        return ServletActionContext.getResponse();     }     /**      * 获得session      *      * @return      */     public HttpSession getSession() {
        return ServletActionContext.getRequest().getSession();     }     /**      * 保存一个对象      */     public void save() {
        Json json = new Json();         if (data != null) {
            service.save(data);             json.setSuccess(true);             json.setMsg("新建成功!");         }         writeJson(json);     }     /**      * 更新一个对象      */     public void update() {
                 Json json = new Json();         String reflectId = null;                  try {
            if (data != null) {
                reflectId = (String) FieldUtils.readField(data, "id", true);             }         }         catch (IllegalAccessException e) {
            e.printStackTrace();         }         if (!StringUtils.isBlank(reflectId)) {
            try {
                T t = service.getById(reflectId);                 BeanUtils.copyProperties(data,t);                 service.update(t);                 json.setSuccess(true);                 json.setMsg("更新成功");                              } catch (Exception e) {
                json.setSuccess(false);                 json.setMsg("更新失败");                 logger.info(e.toString());             }         }         writeJson(json);     }     /**      * 删除一个对象      */     public void delete() {
        Json json = new Json();         if (!StringUtils.isBlank(id)) {
            T t = service.getById(id);             service.delete(t);             json.setSuccess(true);             json.setMsg("删除成功!");         }         writeJson(json);     } }

将BaseActiong写成泛型 这样前台写成data.xxx就可以自动被Struts的类型转换为data

这样对每次操作自动匹配不同的Bean类,非常方便。

service层

serviceI接口定义不同的方法方法

public interface BaseServiceI
{ /** * 保存一个对象 * * @param o * 对象 * @return 对象的ID */ public Serializable save(T o);}

方法太多 写个例子就好

serviceimpl实现类

@Service("BaseService")@Transactionalpublic class BaseServiceImpl
implements BaseServiceI
{ @Autowired private BaseDaoI
baseDao; @Override public Serializable save(T o) { return baseDao.save(o); }}

注入baseDao具体实现方法

下面是BaseDao

BaseDaoI接口定义baseDao的方法

public interface BaseDaoI
{ /** * 保存一个对象 * * @param o * 对象 * @return 对象的ID */ public Serializable save(T o);}

方法太多不再写

BaseDaoImpl

@Repository("baseDao")public class BaseDaoImpl
implements BaseDaoI
{ @Autowired private SessionFactory sessionFactory; /** * 获得当前事物的session * * @return org.hibernate.Session */ public Session getCurrentSession() { return sessionFactory.getCurrentSession(); } @Override public Serializable save(T o) { if (o != null) { return getCurrentSession().save(o); } return null; }}

BaseDaoimpl

需要注入sessionFactory(方法太多不再写)

这样所有都以泛型写通用方法,使得每个继承类同事拥有父类的基础方法,也同时拥有自己特有的方法。如果某个方法要反复使用,就写成通用方法。大量的减少了代码

转载于:https://www.cnblogs.com/wsy123/p/4463161.html

你可能感兴趣的文章
实验六
查看>>
《现代操作系统》学习笔记之存储管理之地址空间
查看>>
ASP.NET MVC2 in Action 读书笔记 [3]
查看>>
报表数据填报中的自动计算
查看>>
online_judge_1105
查看>>
复制功能的实现
查看>>
Remove Element
查看>>
ES6 Promise 用法讲解
查看>>
20180320作业1:源代码管理工具调查——15100216
查看>>
输出空心菱形
查看>>
StringBuilder类为何比string的简单拼接效率高
查看>>
仿百度搜索框自动下拉提示
查看>>
某封包地址分析
查看>>
渗透测试
查看>>
第七节
查看>>
获取和设置WebBrowser内核IE版本
查看>>
我的第一个博客,开始记录点滴生活
查看>>
用C#sqlserver实现增删改查
查看>>
使用DataX同步MaxCompute数据到TableStore(原OTS)优化指南
查看>>
绿色地址栏,未来安全的新趋势!
查看>>