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数据库连接的名称。

最新文章

  1. 【JS复习笔记】02 对象与函数
  2. Eclipse启动Tomcat错误:Several ports (8005,8009) required by Tomcat v6.0 Server at localhost are already
  3. android 自定义相机画面倒立解决方案
  4. ReactiveCocoa的使用方法
  5. activeMQ设置admin的用户名和密码
  6. Android开发教程AnimationDrawable逐帧播放动画
  7. db2新建数据库
  8. 【杭州(含嘉兴,绍兴,金华,湖州,义乌)】Uber优步司机奖励政策(2月1日~2月7日)
  9. ASP.NET性能优化小结
  10. 2015.9.11模拟赛 codevs4162 bzoj1774【无双大王】
  11. android怎样实现自动点击功能
  12. CentOS 7安装redis及php扩展
  13. OMCS使用技巧 -- 摄像头及其动态能力
  14. Omi树组件omi-tree编写指南
  15. 套接字编程相关函数(2:TCP套接字编程相关函数)
  16. php与html实现交互的基本操作
  17. linux学习问题总结
  18. vue二次实战
  19. vs 2013 编译cocos2d-x-3.9
  20. Nexus3 仓库搭建(基于Docker)

热门文章

  1. 利用Python分析羊车门问题
  2. 【Luogu】P2057善意的投票(最小割转最大流)
  3. linux下安装firefox
  4. hdu 3625 Examining the Rooms 轮换斯特林数
  5. Linux System Programming 学习笔记(二) 文件I/O
  6. Android中沉浸式状态栏的应用
  7. 搭建vue-cli时候报错处理
  8. python3 - 多线程和协程速率测试对比
  9. [Machine Learning with Python] How to get your data?
  10. ubuntu网络、包管理、工作内容小结