Atitit.设计模式-----触发器模式 trigger  详解

1. 触发器概念1

1.1. 触发器位置 after|before|instead of1

2. 数据库里面的触发器1

2.1. old和:new1

2.2. INSTEAD OF 触发器 after|before|instead of2

3. 基于业务的 触发器2

3.1. Trgger的定义 $trigger  $triggerPos2

3.2. Trigger的使用3

4. ref4

1. 触发器概念

1.1. 触发器位置 after|before|instead of

业务模块里面的触发器,web url里面的before就是对req参数做操作。After是对rows做操作。

2. 数据库里面的触发器

2.1. old和:new

在Oracle中用:old和:new表示执行前的行,和执行后的行。

在MySQL中用old和new表示执行前和执行后的数据。

这样在技术上处理(NEW | OLD . column_name)新和旧

的列名属于创建了过渡变量("transition variables")。

对于INSERT语句,只有NEW是合法的;对于DELETE语句,只有OLD才合法;而UPDATE语句可以在和NEW以及

OLD同时使用。

作者::  ★(attilax)>>>   绰号:老哇的爪子 ( 全名::Attilax Akbar Al Rapanui 阿提拉克斯 阿克巴 阿尔 拉帕努伊 ) 汉字名:艾龙,  EMAIL:1466519819@qq.com

转载请注明来源: http://www.cnblogs.com/attilax/

2.2. INSTEAD OF 触发器 after|before|instead of

INSTEAD OF 触发器用来代替通常的触发动作,即当对表进行INSERT、UPDATE 或 DELETE 操作时,系统不是直接对表执行这些操作,而是把操作内容交给触发器,让触发器检查所进行的操作是否正确。如正确才进行相应的操作。因此,INSTEAD OF 触发器的动作要早于表的约束处理。

AFTER 触发器定义了对表执行了 INSERT、UPDATE 或 DELETE 语句操作之后再执行的操作。比如对某个表中的数据进行了更新操作后,要求立即对相关的表进行指定的操作,这时就可以采用 AFTER 触发器。AFTER 触发器只能在表上指定,且动作晚于约束处理

3. 基于业务的 触发器

3.1. Trgger的定义 $trigger  $triggerPos

function btn_click()

{

var ds=new dataService();

ds.merge_after_goto_url="../cust/goods/copy/list?envi=cp";

ds.merge("$tb=wxb_good_copy&$trigger=com.attilax.dataService.meta_data_pars_from_txt_trigger&$trigtime=after");

}

public class meta_data_pars_from_txt_trigger extends Trigger {

public static void main(String[] args) {

// TODO Auto-generated method stub

}

public Object exec(Object object) {

Map row=(Map) object;

String txt= htmlx.html2txtV2( row.get("copy_content").toString());

Map part = new RowParser().parse(txt);

row.putAll(part);

return null;

// String txt=(String) object;

}

}

3.2. Trigger的使用

* DataService

* @author Administrator

*

*/

public class UrlDsl2SqlStoreService

Trigger trigr;

if(req.getParameter("$trigger")!=null)   //p319

{

String tiggerName=req.getParameter("$trigger");

Object trigger= IocXq214.getBean(tiggerName);

this.trigr=(Trigger) trigger;

}

if(m.get("$trigger")!=null && m.get("$triggerPos").equals("after") )

{

Trigger o=  IocXq214.getBean(m.get("$trigger").toString());

rows=  o.exec(rows);

}

return rows;

}

4. ref

atitit...触发器机制 ltrigger mechanism sumup .的总结O8f - attilax的专栏 - 博客频道 - CSDN.NET.htm

 

Atitit.设计模式-----触发器模式 trigger  详解的更多相关文章

  1. Java多线程编程中Future模式的详解

    Java多线程编程中,常用的多线程设计模式包括:Future模式.Master-Worker模式.Guarded Suspeionsion模式.不变模式和生产者-消费者模式等.这篇文章主要讲述Futu ...

  2. Java 反射 设计模式 动态代理机制详解 [ 转载 ]

    Java 反射 设计模式 动态代理机制详解 [ 转载 ] @author 亦山 原文链接:http://blog.csdn.net/luanlouis/article/details/24589193 ...

  3. Java多线程编程中Future模式的详解<转>

    Java多线程编程中,常用的多线程设计模式包括:Future模式.Master-Worker模式.Guarded Suspeionsion模式.不变模式和生产者-消费者模式等.这篇文章主要讲述Futu ...

  4. python设计模式之装饰器详解(三)

    python的装饰器使用是python语言一个非常重要的部分,装饰器是程序设计模式中装饰模式的具体化,python提供了特殊的语法糖可以非常方便的实现装饰模式. 系列文章 python设计模式之单例模 ...

  5. atitit.jQuery Validate验证框架详解与ati Validate 设计新特性

    atitit.jQuery Validate验证框架详解与ati Validate 设计新特性 1. AtiValidate的目标1 2. 默的认校验规则1 2.1. 使用方式 1.metadata用 ...

  6. 《手把手教你》系列基础篇(九十三)-java+ selenium自动化测试-框架设计基础-POM设计模式实现-上篇(详解教程)

    1.简介 上一篇介绍了POM的基础理论知识和非POM方式写脚本,这篇介绍利用页面工厂类(page factory)去实现POM,通过查看PageFactory类,我们可以知道它是一个初始化一个页面实例 ...

  7. 《手把手教你》系列基础篇(九十四)-java+ selenium自动化测试-框架设计基础-POM设计模式实现-下篇(详解教程)

    1.简介 上一篇宏哥用PageFactory实现了POM,宏哥再介绍一下如果不用PageFactory如何实现POM. 2.项目实战 在这里宏哥以百度首页登录的例子,如果用POM实现,在测试脚本中实际 ...

  8. mysql之触发器trigger 详解

    为了梦想,努力奋斗! 追求卓越,成功就会在不经意间追上你 mysql之触发器trigger 触发器(trigger):监视某种情况,并触发某种操作. 触发器创建语法四要素:1.监视地点(table)  ...

  9. ORACLE DB TRIGGER详解

    本篇主要内容如下: 8.1 触发器类型 8.1.1 DML触发器 8.1.2 替代触发器 8.1.3 系统触发器 8.2 创建触发器 8.2.1 触发器触发次序 8.2.2 创建DML触发器 8.2. ...

随机推荐

  1. TSynAuthentication SESSION验证

    TSynAuthentication SESSION验证 服务端维护的SESSIONS,实质上是一个array of integer,保存的是客户端的SESSIONID. SESSIONID可以由客户 ...

  2. 使用git bash 代替cmd

    上一文章,用Node.js建HTTP服务器,然后在cmd启动,这次尝试用git bash. git bash 也是命令行工具,画面更好看,使用更方便,可以替代cmd. 下载git:https://gi ...

  3. Oracle数据库中的所有用户名

    select * from dba_users; 查看数据库里面所有用户,前提是你是有dba权限的帐号,如sys,systemselect * from all_users;  查看你能管理的所有用户 ...

  4. JSON相关

  5. 关于如何避免Android中Bitmap引起的OutOfMemoryError

    在Android中处理大图片不是一件很随意的事情,因为通常我们使用的是内置的BitmapFactory解码图片的,而BitmapFactory往往会因为图片过大而遇到OutOfMemoryError的 ...

  6. OIT

    https://matthewwellings.com/blog/depth-peeling-order-independent-transparency-in-vulkan/ depth peeli ...

  7. DevExpress 中 汉化包 汉化方法

    刚试了一下,直接把汉化包放在 Debug 目录下也是可以的.直接会汉化 第一步: 在Debug 下添加 zh-CN 汉化包(自行下载) 第二步: 在 Program.cs中添加以下代码 : Syste ...

  8. R简易安装

    post={"title":"my Blog post","content":"Here's my blog post" ...

  9. conkey conf

    update_interval 1.0 # 更新时间间隔double_buffer yes # 双缓存,解决Conky闪烁问题use_xft yes # 自定义字体xftfont DejaVu San ...

  10. django中根据模型生成页面的脚手架app-groundwork

    相信做过Asp.net MVC的朋友对在此框架下,根据模型自动生成浏览,编辑,查看,删除的四个页面的脚手架功能记忆尤新,那么我们在用python中的django框架时,有没有此脚手架功能呢,很显然,默 ...