kettle job如何利用java的反射机制获取执行的sql语句

简介: kettle job中的JavaScript如何获取同一个job中SQL步骤的执行语句并让执行语句记录在日志中呢?首先写日志需要用到job中JavaScript写日志的方法,其次是利用java反射机制获取执行的sql。

kettle job中的JavaScript如何获取同一个job中SQL步骤的执行语句并让执行语句记录在日志中呢?首先写日志需要用到job中JavaScript写日志的方法,其次是利用java反射机制获取执行的sql。

如:

var sqlObj = getJobStep("SQL");
var sql = sqlObj.environmentSubstitute(sqlObj.getSQL());

var logWriter = org.pentaho.di.core.logging.LogWriter.getInstance();
logWriter.logBasic(parent_job.getJobname(), "作业SQL语句打印===================>"+sql);
true;


function getJobStep(stepName){
  var jobMeta = parent_job.getJobMeta();
  var jobStep = jobMeta.findJobEntry(stepName, 0, false);
  var stepObj = jobStep.getEntry();
  return stepObj;
}

这样就可以将日志优雅地记录在日志文件中了。

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
1月前
|
网络协议 算法 Java
|
1月前
|
SQL Oracle Java
sql文件批处理程序-java桌面应用
sql文件批处理程序-java桌面应用
25 0
|
1月前
|
SQL Java 应用服务中间件
Java项目防止SQL注入的四种方案
Java项目防止SQL注入的四种方案
38 0
|
29天前
|
开发框架 Java API
java反射机制的原理与简单使用
java反射机制的原理与简单使用
17 1
|
4天前
|
监控 Java 开发者
掌握 Java 反射和动态代理
【4月更文挑战第19天】Java反射和动态代理提供强大功能和灵活性。反射允许运行时检查和操作类,获取类信息、动态调用方法,但可能带来性能损失和降低代码可读性。动态代理则用于创建代理对象,实现透明性和横切关注点分离,常用于日志、权限检查等。两者结合能实现更复杂功能。掌握这些技术能提升代码的灵活性和可扩展性,但也需注意性能和可读性。通过学习和实践,能更好地构建高效软件系统。
|
11天前
|
Java
代码的魔法师:Java反射工厂模式详解
代码的魔法师:Java反射工厂模式详解
24 0
|
15天前
|
安全 Java
java反射篇
java反射篇
|
15天前
|
存储 Java
java反射——设计框架的灵魂
java反射——设计框架的灵魂
|
17天前
|
安全 Java 调度
深入理解Java中的线程安全与锁机制
【4月更文挑战第6天】 在并发编程领域,Java语言提供了强大的线程支持和同步机制来确保多线程环境下的数据一致性和线程安全性。本文将深入探讨Java中线程安全的概念、常见的线程安全问题以及如何使用不同的锁机制来解决这些问题。我们将从基本的synchronized关键字开始,到显式锁(如ReentrantLock),再到读写锁(ReadWriteLock)的讨论,并结合实例代码来展示它们在实际开发中的应用。通过本文,读者不仅能够理解线程安全的重要性,还能掌握如何有效地在Java中应用各种锁机制以保障程序的稳定运行。
|
21天前
|
Java
Java通过反射获取类调用方法
Java通过反射获取类调用方法
18 0