设为首页
优惠IDC
收藏本站
六狼博客
六狼论坛
开启辅助访问
切换到窄版
用户名
Email
自动登录
找回密码
密码
登录
立即注册
只需一步,快速开始
只需一步,快速开始
快捷导航
门户
首页
BBS
云计算
大数据
手机
移动开发android,ios,windows phone,windows mobile
编程
编程技术java,php,python,delphi,ruby,c,c++
前端
WEB前端htmlcss,javascript,jquery,html5
数据库
数据库开发Access,mysql,oracle,sql server,MongoDB
系统
操作系统windows,linux,unix,os,RedHat,tomcat
架构
项目管理
软件设计,架构设计,面向对象,设计模式,项目管理
企业
服务
运维实战
神马
搜索
搜索
热搜:
php
java
python
ruby
hadoop
sphinx
solr
ios
android
windows
centos
本版
帖子
用户
六狼论坛
»
首页
›
数据库开发
›
DB2
›
使用 DB2 触发器、Java UDF 和 JavaMail API 实施业务逻 ...
返回列表
查看:
72
|
回复:
0
使用 DB2 触发器、Java UDF 和 JavaMail API 实施业务逻辑
[复制链接]
marb
marb
当前离线
积分
125
窥视卡
雷达卡
升级
50%
当前用户组为
秀才
当前积分为
125
, 升到下一级还需要 75 点。
35
主题
35
主题
35
主题
秀才
秀才, 积分 125, 距离下一级还需 75 积分
秀才, 积分 125, 距离下一级还需 75 积分
积分
125
发消息
楼主
|
发表于 2013-1-13 18:58:52
|
显示全部楼层
|
阅读模式
通过使用示例应用程序,Kulvir Singh Bhogal 向您展示了在客户接近他们的信用限额时,如何自动地触发一封定制的e-mail。
创建数据库
首先,我们需要使用一个数据库。当然,一个真正的信用卡系统的数据库很可能比我们给出的这个简单模型要复杂得多。然而,出于学习目的,我们的例子将尽量简单。
<ol>首先,用下面的 SQL 语句创建数据库:
create db cardDB
当然,我们必须连接数据库才能进行有用的操作:
connect to cardDB
接下来,我们需要一个表来存储所有的客户数据。
表 1
给出了表的列。 先有鸡还是先有蛋?
回到我们的“因果”主题,我们需要同时定义“原因”和“结果”。如果您是第一遍阅读和理解本文,请继续下去阅读
原因
小节。但是,如果您是第二遍阅读并且正在照此做实验,请先跳到
结果
小节。您应该在创建原因(触发器)之前先创建结果(UDF),这样一来,当您的触发器预备调用 UDF 时,它就已经在那里了。
[img=100%,1]http://www.ibm.com/i/v14/rules/blue_rule.gif[/img]
[img=100%,4]http://www.ibm.com/i/c.gif[/img]
生成 e-mail (结果)
在触发器中,如果满足指定条件,就调用 Java UDF。 但是,为什么要引用 UDF 呢?下面将花些时间来回答这个问题。然而,我们首先介绍UDF。
测试
如果您按照上述步骤至今没有出现任何问题,那您将很快就可以看到劳动成果了。
测试方法为:发出一条 update 语句,使得某个特定的信用卡客户处于信用限额的 15% 以内,触发器将通过创建的Java UDF 发送一封 e-mail。
如果您使用本文开始建议的特定模拟数据,可以用下面的语句来测试:
update cardHolderTableset currentBalance = 4600.00where lastName = 'Bhogal' and firstName = 'Kulvir'
通过发出这条 update 语句,我们已经有效地将姓为 Bhogal 名为 Kulvir 的客户置于信用限额的 15%以内这个“红色区域”。
相应地,触发器将对这个 update 作出反应,因为它满足了调用 Java UDF 的条件。
通过将进入“红色区域”客户的 e-mail 地址改为您的 e-mail 地址,可以检查设置是否能够正常工作。有一个需要注意的陷阱就是,您的SMTP 服务器也许不支持 e-mail 转发。这一点在 ISP 中是很普遍的,因为这样可以确保他们的 SMTP 服务器阻止垃圾邮件。因此,在Java UDF 中要将“发送端”地址指定为 SMTP 服务器可识别的地址。如果您在邮箱中自动地接收到了一封 e-mail,我们的实验就通过了。
[img=100%,1]http://www.ibm.com/i/v14/rules/blue_rule.gif[/img]
[img=100%,4]http://www.ibm.com/i/c.gif[/img]
结束语
DB2触发器对于数据库程序员来说是一项很强大的功能。在工具箱中拥有了这些触发器,就可以在数据库更新时立即执行操作。触发器允许您以一种将所执行的操作与应用程序分离的方式来封装和定义业务逻辑。这样做实质上是将某些操作放到后台执行。这种做法在那些有几个不同程序(很可能由不同语言编写的)同时来更新数据库的环境中特别有用。这些程序可能都有相同的基本功能(例如,发送一封e-mail)。通过使用在本文中完成的 trigger/UDF 的联合,您可以毫不费力地用不同语言对同一功能进行重复编码。
此外,通过使用 Java UDF,您可以用触发器使 DB2 和 Java 协同工作。在本文中,当客户将要到达他的信用限额时,使用DB2 触发器调用 Java 用户定义函数。这个 JavaUDF 又通过 JavaMail API 来生成一封定制的 e-mail。
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
显身卡
返回列表
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
回帖后跳转到最后一页
浏览过的版块
os
CentOS
C
iis
Copyright © 2008-2020
六狼论坛
(https://it.6wolf.com) 版权所有 All Rights Reserved.
Powered by
Discuz!
X3.4
京ICP备14020293号-2
本网站内容均收集于互联网,如有问题请联系
QQ:389897944
予以删除
快速回复
返回顶部
返回列表