kettle中使用javascript步骤和fireToDB函数实现自己定义数据库查询
kettle中使用javascript步骤和fireToDB函数实现自己定义数据库查询
如果你须要实现非传统的数据库查询操作。为了讨论这样的情景,我们如果你须要读取数据库中的正則表達式,然后检查输入的每行的字段匹配表达式的个数。
在javascript步骤运行数据库查询
在javascript步骤初始化的时候,查询数据库。获取正則表達式记录集。然后每一行的输入数据循环检查是否匹配表达式,假设匹配。记录变量加一,最后把结果写到到前行的新增字段中。
思路非常清楚,可是怎样在javascript步骤实现数据库查询?
这里介绍一个很实用的函数fireDb(),他须要事先在转换中定义好一个数据库连接作为參数。以及一个SQL查询语句參数,这里的sql仅仅能是select查询语句,由于fireDb()函数没有事务或错误处理。返回值是记录行的数组,每行是一个有多个字段的数组。
以下是代码片段。这段代码仅仅运行一次,最好放在initialization tab,这样能够提高javascript步骤的运行效率。
// read all rules from Scrapbook DB
var xArr =fireToDB("Scrapbook", "SELECT rule FROM rules;");
var regex = [];
// for each row, save the returned rulefor later use
for (var i in xArr){
regex.push(xArr[i][0]);
}
以下这些代码是每行都要运行的;
var rules_matched = 0;
var jstr = newjava.lang.String(string_to_test);
// count matching rules
for(var i in regex){
varrule = regex[i];
if (jstr.matches(rule)){
rules_matched++;
}
}
能够在这里下载演示样例,试试fireDb()函数的使用方法,演示样例中mysql的演示样例数据的SQL语句。当中代码中“Scrapbook”是转换中定义的与mysql数据库连接的名称。
最新文章
- 【JS复习笔记】02 对象与函数
- Eclipse启动Tomcat错误:Several ports (8005,8009) required by Tomcat v6.0 Server at localhost are already
- android 自定义相机画面倒立解决方案
- ReactiveCocoa的使用方法
- activeMQ设置admin的用户名和密码
- Android开发教程AnimationDrawable逐帧播放动画
- db2新建数据库
- 【杭州(含嘉兴,绍兴,金华,湖州,义乌)】Uber优步司机奖励政策(2月1日~2月7日)
- ASP.NET性能优化小结
- 2015.9.11模拟赛 codevs4162 bzoj1774【无双大王】
- android怎样实现自动点击功能
- CentOS 7安装redis及php扩展
- OMCS使用技巧 -- 摄像头及其动态能力
- Omi树组件omi-tree编写指南
- 套接字编程相关函数(2:TCP套接字编程相关函数)
- php与html实现交互的基本操作
- linux学习问题总结
- vue二次实战
- vs 2013 编译cocos2d-x-3.9
- Nexus3 仓库搭建(基于Docker)