Atitit.设计模式-----触发器模式 trigger 详解
2016-04-07 21:14
489 查看
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. 触发器位置
业务模块里面的触发器,web url里面的before就是对req参数做操作。After是对rows做操作。
在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://blog.csdn.net/attilax
INSTEAD OF 触发器用来代替通常的触发动作,即当对表进行INSERT、UPDATE 或 DELETE 操作时,系统不是直接对表执行这些操作,而是把操作内容交给触发器,让触发器检查所进行的操作是否正确。如正确才进行相应的操作。因此,INSTEAD OF 触发器的动作要早于表的约束处理。
AFTER 触发器定义了对表执行了 INSERT、UPDATE 或 DELETE 语句操作之后再执行的操作。比如对某个表中的数据进行了更新操作后,要求立即对相关的表进行指定的操作,这时就可以采用 AFTER 触发器。AFTER 触发器只能在表上指定,且动作晚于约束处理
3.1. Trgger的定义
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;
}
}
*
@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;
}
详解
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://blog.csdn.net/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相关文章推荐
- 【诸葛干货】一看就明白的爬虫入门-基础理论篇(上篇)
- 价值观
- HTML基础(三)
- return和break的区别(附带源代码)
- Atitit.设计模式-----触发器模式 trigger 详解
- Atitit.设计模式-----触发器模式 trigger 详解
- 阅读博文心得
- hdu 1548 A strange lift(迪杰斯特拉,邻接表)
- 4.0-ansible playbook handlers
- 树形dp-CodeForces 581F
- 第五届计算机职业资格认证考试CCF (第一题)
- Fliter2D
- POJ 1730 Perfect Pth Powers(素数筛选法)
- 【SSM-MyBatis框架】MyBatis入门
- Aliyun(阿里云)搭建WordPress
- Java_SE08-文本数据IO操作,异常处理
- 第六周博客技术发表 C语言代码
- Ubuntu 12.04下C语言连接Mysql数据库实现增删改查
- 机器学习技法-GBDT算法
- 属性选择器