最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java如何調(diào)用kettle設(shè)置變量和參數(shù)

 更新時間:2025年01月02日 08:53:49   作者:千里草竹  
文章簡要介紹了如何在Java中調(diào)用Kettle,并重點討論了變量和參數(shù)的區(qū)別,以及在Java代碼中如何正確設(shè)置和使用這些變量,避免覆蓋Kettle中已設(shè)置的變量,作者分享了個人經(jīng)驗,并鼓勵大家參考和使用腳本之家

java調(diào)用kettle設(shè)置變量和參數(shù)

java調(diào)用kettle,變量和參數(shù)的設(shè)置方式

java代碼中變量會覆蓋kettle里面設(shè)置的變量

需要注意:

變量和參數(shù) 他倆是不一樣的

public class JobMail {
	public static void main(String[] args) throws KettleException {

		KettleDatabaseRepository repository = KettleUtils.kettleDbRepository;
		String job_path = "/201811_JOB";
		String job_name = "A_郵件job_para";
		execJob(repository, job_path, job_name);
	}

	/**
	 * 執(zhí)行 JOB
	 * 
	 * @param repository
	 *            kettle數(shù)據(jù)庫資源庫
	 * @param job_path
	 *            JOB 目錄
	 * @param job_name
	 *            JOB 名稱
	 * @throws KettleException
	 */
	private static void execJob(KettleDatabaseRepository repository, String job_path, String job_name) throws KettleException {
		RepositoryDirectoryInterface dir = repository.findDirectory(job_path);
		JobMeta jobMeta = repository.loadJob(repository.getJobId(job_name, dir), null);
		Job job = new Job(repository, jobMeta);
		// 設(shè)置參數(shù)
		jobMeta.setParameterValue("sql_file", "d://12");
		jobMeta.setParameterValue("sql_file_para", "java中參數(shù)");
		job.setLogLevel(LogLevel.DEBUG);
		// 設(shè)置變量 java代碼中變量會覆蓋kettle里面設(shè)置的變量
		job.setVariable("sql_file", "d://13");
		// 啟動執(zhí)行指定的job
		job.start();
		job.waitUntilFinished();// 等待job執(zhí)行完;
		job.setFinished(true);
		System.out.println(job.getResult());

	}
}
public class KettleUtils {
	private static Logger logger = Logger.getLogger(KettleUtils.class);

	private KettleUtils() throws Exception {
		throw new Exception("工具類不允許創(chuàng)建");
	}

	/**
	 * kettle 資源庫
	 */
	public static KettleDatabaseRepository kettleDbRepository;

	static {
		if (kettleDbRepository == null) {
			kettleDbRepository = getKettleDatabaseRepository();
			logger.info("實例化kettle資源庫");
		}
	}

	/**
	 * 設(shè)置kettle資源庫連接信息
	 * 
	 * @return
	 */
	public static DatabaseMeta setDatabaseMeta() {
		return new DatabaseMeta(PropUtils.getConfigValByKey("name"), PropUtils.getConfigValByKey("type"), PropUtils.getConfigValByKey("access"), PropUtils.getConfigValByKey("host"), PropUtils.getConfigValByKey("db"), PropUtils.getConfigValByKey("port"), PropUtils.getConfigValByKey("user"), PropUtils.getConfigValByKey("pass"));
	}

	/**
	 * kettle 資源庫 獲取
	 * 
	 * @return
	 */
	private static KettleDatabaseRepository getKettleDatabaseRepository() {
		try {
			KettleEnvironment.init();
			// 創(chuàng)建DB資源庫
			KettleDatabaseRepository repository = new KettleDatabaseRepository();
			DatabaseMeta databaseMeta = KettleUtils.setDatabaseMeta();
			// 選擇資源庫 此處參我與本地不一致還是正確執(zhí)行
			KettleDatabaseRepositoryMeta kettleDatabaseRepositoryMeta = new KettleDatabaseRepositoryMeta("Kettle", "Kettle", "Transformation description", databaseMeta);
			repository.init(kettleDatabaseRepositoryMeta);
			// 連接資源庫 DatabaseMeta中已經(jīng)設(shè)置了,不明白此處為何還要再次設(shè)置
			repository.connect("admin", "admin");
			return repository;
		} catch (KettleException e) {
			e.printStackTrace();
			logger.error("kettle資源庫連接失敗");
		}
		return null;
	}
}

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 為什么禁止在SpringBoot項目中使用@Autowired注解

    為什么禁止在SpringBoot項目中使用@Autowired注解

    寫代碼的時候突然發(fā)現(xiàn)?idea?在屬性注入的?@Autowired?注解上給出警告提示,spring?framework?4.0?以后開始出現(xiàn)的,spring?4.0?開始就不推薦使用屬性注入,改為推薦構(gòu)造器注入和?setter?注入,推薦的方法是使用基于構(gòu)造函數(shù)和基于setter的依賴注入
    2024-08-08
  • Java線程優(yōu)先級示例代碼

    Java線程優(yōu)先級示例代碼

    使用過Bit下載軟件的同學(xué)應(yīng)該很清楚,我們有多個下載任務(wù)同時執(zhí)行,而其中的某一個或多個是非常重要的,于是給這些任務(wù)設(shè)定一個高度優(yōu)先,以便任務(wù)可以獲取更多的帶寬盡早完成下載
    2013-09-09
  • springboot項目中jacoco服務(wù)端部署使用

    springboot項目中jacoco服務(wù)端部署使用

    這篇文章主要為大家介紹了springboot項目中jacoco服務(wù)端部署使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-07-07
  • java運(yùn)行windows的cmd命令簡單代碼

    java運(yùn)行windows的cmd命令簡單代碼

    這篇文章主要介紹了java運(yùn)行windows的cmd命令簡單代碼,有需要的朋友可以參考一下
    2013-12-12
  • Java 內(nèi)置接口 Serializable示例詳解

    Java 內(nèi)置接口 Serializable示例詳解

    這篇文章主要為大家介紹了Java 內(nèi)置接口 Serializable示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-11-11
  • java如何根據(jù)IP獲取當(dāng)前區(qū)域天氣信息詳解

    java如何根據(jù)IP獲取當(dāng)前區(qū)域天氣信息詳解

    根據(jù)IP自動獲取當(dāng)?shù)氐奶鞖忸A(yù)報信息這個功能大家應(yīng)該都遇到過,天氣預(yù)報信息用途非常廣泛,篇文章主要給大家介紹了關(guān)于java如何根據(jù)IP獲取當(dāng)前區(qū)域天氣信息的相關(guān)資料,需要的朋友可以參考下
    2021-08-08
  • 使用Java構(gòu)建一個簡潔清晰的日期API

    使用Java構(gòu)建一個簡潔清晰的日期API

    這篇文章主要為大家詳細(xì)介紹了如何使用Java構(gòu)建一個簡潔清晰的日期API,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2025-10-10
  • Spring?MVC中的Controller進(jìn)行單元測試的實現(xiàn)

    Spring?MVC中的Controller進(jìn)行單元測試的實現(xiàn)

    本文主要介紹了如何對Spring?MVC中的Controller進(jìn)行單元測試的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • java網(wǎng)絡(luò)之基于UDP的聊天程序示例解析

    java網(wǎng)絡(luò)之基于UDP的聊天程序示例解析

    這篇文章主要介紹了java網(wǎng)絡(luò)之基于UDP的聊天程序示例解析,文中通過步驟及示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • 詳解rabbitmq使用springboot實現(xiàn)fanout模式

    詳解rabbitmq使用springboot實現(xiàn)fanout模式

    這篇文章主要介紹了rabbitmq使用springboot實現(xiàn)fanout模式,Fanout特點是發(fā)布與訂閱模式,是一種廣播機(jī)制,它是沒有路由key的模式,需要的朋友可以參考下
    2023-07-07

最新評論

安顺市| 涿州市| 旬阳县| 明溪县| 登封市| 娄底市| 库车县| 峨眉山市| 古交市| 兰州市| 梅河口市| 遂溪县| 通江县| 同德县| 澄江县| 紫阳县| 三明市| 巴南区| 阳东县| 安多县| 朝阳区| 和平县| 冀州市| 灵川县| 石台县| 麻栗坡县| 周宁县| 大田县| 兰溪市| 蕉岭县| 福贡县| 周口市| 名山县| 正阳县| 连州市| 陕西省| 弋阳县| 邵阳市| 湟中县| 西安市| 宁国市|