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

kettle中使用javascript步骤和fireToDB函数实现自己定义数据库查询相关推荐

  1. .net中前台javascript与后台c#函数相互调用

    1.如何在JavaScript访问C#函数? 2.如何在JavaScript访问C#变量? 3.如何在C#中访问JavaScript的已有变量? 4.如何在C#中访问JavaScript函数? 问题1 ...

  2. [译]如何在visual studio中调试Javascript

    本文翻译youtube上的up主kudvenkat的javascript tutorial播放单 源地址在此: https://www.youtube.com/watch?v=PMsVM7rjupU& ...

  3. 《JavaScript权威指南第7版》第15章 Web浏览器中的JavaScript 15.1 15.2 15.3

    第15章 Web浏览器中的JavaScript 15.1 网络编程基础 15.1.1 HTML script 标签中的JavaScript 模块 指定脚本类型 脚本运行时:异步和延迟 按需加载脚本 1 ...

  4. MYSQL中最基础的的聚合函数(重点!)

    一.聚合函数的介绍 在数据库查询过程中,不仅只返回数据的基础信息,有时还需对这些数据进行统计和汇总.MySQL 提供了聚合函数,用于实现这些高级功能. 二.聚合函数的基础运用 聚合函数用于对一组值进行 ...

  5. JavaScript 中的 Hoisting (变量提升和函数声明提升)

    如何将 函数声明 / 变量 "移动" 到作用域的顶部. 术语 Hoisting(提升) 在很多 JavaScript 博文中被用来解释标识符的解析.其实 Hoisting(提升) ...

  6. [译] ES6+ 中的 JavaScript 工厂函数(第八部分)

    本文讲的是[译] ES6+ 中的 JavaScript 工厂函数(第八部分), 原文地址:JavaScript Factory Functions with ES6+ 原文作者:Eric Elliot ...

  7. kettle于javascript步骤错误处理

    javascript步骤错误处理 假设你熟悉kettle误差特性转换.你可能想知道javascript步骤如何使用.骤用户界面机制是同样的,在javascript步骤右击,选择"定义错误处理 ...

  8. asp.net中前台javascript与c#函数相互调方法

    C#代码与javaScript函数的相互调用 问题: 1.如何在JavaScript访问C#函数? 2.如何在JavaScript访问C#变量? 3.如何在C#中访问JavaScript的已有变量? ...

  9. java 调用js脚本_Java中使用JavaScript脚本的方法步骤

    简介 Nashorn Nashorn 一个 javascript 引擎. 从JDK 1.8开始,Nashorn取代Rhino(JDK 1.6, JDK1.7)成为Java的嵌入式JavaScript引 ...

最新文章

  1. SAP ABAP BAPI_GOODSMVT_CREATE的几个应用
  2. Jmeter脚本录制(APP)
  3. Sublime Text 3下Emmet使用技巧
  4. springboot微信支付pc页面生成二维码
  5. Spring 三种注入方式
  6. C语言小算法:ACSII码(多字节)和Unicode(宽字节)互转
  7. 自学Java开发一般需要多久?
  8. Windows 10原创知识题(第三版)
  9. Java——Session使用
  10. OpenSSL密码库算法笔记——第2.4章 三种模运算的比较
  11. 如何确定自己的科研课题?
  12. 2007年个人回忆与总结
  13. greenplum,teradata,presto,clickhouse四种分布式数据库的对比
  14. 网站如何过服务器的白名单,服务器怎么添加域名白名单
  15. Smoke Loader、AZORult***通过虚假海啸警报传播到了日本
  16. 机器视觉——光源选型原理及使用方法
  17. php curl get 返回空,php-cURL从有效url返回空输出-没有错误报告
  18. 2019秋季PAT甲级考试总结:努力+策略+运气
  19. 看---1500应届硕士竞聘猪肉佬
  20. 离散数学及其应用课程复习Kenneth H.Rosen

热门文章

  1. 楼层平面放线及标高实测记录_没去过工地?没有施工经验?市政工程施工测量放线方法总结!...
  2. apply与applymap的区别
  3. python量化交易2019_2019 量化交易策略实盘总结和一些展望
  4. 3分钟入门python_3分钟学完Python,直接从入门到精通「史上最强干货库」
  5. 【企业管理】2019年12 月 每日花语
  6. 2021-04-21--中标麒麟-yum源修改
  7. Vue中父组件调用子组件的方法
  8. GitLab怎样实现新建仓库并允许开发者推送代码实现协同开发
  9. Linux-Ubuntu中使用apt进行软件的安装与卸载
  10. MyBatisPlus中使用 @TableField完成字段自动填充