相关文章推荐
玩足球的手术刀  ·  Android11 ...·  2 月前    · 
难过的盒饭  ·  php ...·  1 年前    · 
public List<String> getConfig(KettleResource resourcein,String customSql) throws KettleDatabaseException, SQLException{
			String[] databasesXML = {
				"<?xml version=\"1.0\" encoding=\"UTF-8\"?>" +
			            "<connection>" +
			            "<name>"+resourcein.getrName()+"</name>" +
			            "<server>"+resourcein.getrServer()+"</server>" +
			            "<type>"+resourcein.getrType()+"</type>" +
			            "<access>"+resourcein.getrAccess()+"</access>" + 
			            "<database>"+resourcein.getrDatabase()+"</database>" +
			            "<port>"+resourcein.getrPort()+"</port>" +
			            "<username>"+resourcein.getrUsername()+"</username>" +
			            "<password>"+resourcein.getrPassword()+"</password>" +
			          "</connection>"
			DatabaseMeta databaseMeta = null;
			try {
				 databaseMeta = new DatabaseMeta(databasesXML[0]);
			} catch (KettleXMLException e) {		
				e.printStackTrace();
			Database database = null;
			database = new Database(null,databaseMeta);
			database.connect();
//			String sql = null;
//			/**Mysql的方式*/
//			if(resourcein.getrType().toUpperCase().equals("MYSQL")){
//				sql="SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = \""+resourcein.getrDatabase()+"\" ";
//			}
			ResultSet resultSet;
            resultSet = database.openQuery(customSql);
            List<String> list = new ArrayList<String>();
            while(resultSet.next()){
            	String a = resultSet.getString("TABLE_NAME");
//           		System.out.println("表名"+a);
           		list.add(a);
			return list;

下面为参数1的属性代码

public class KettleResource implements Serializable {
    private Integer id;
     * 资源库描述
    @Column(name = "r_name")
    private String rName;
     * 主机地址
    @Column(name = "r_server")
    private String rServer;
     * 数据库类型
    @Column(name = "r_type")
    private String rType;
     * 连接方式
    @Column(name = "r_access")
    private String rAccess;
     * 数据库名
    @Column(name = "r_database")
    private String rDatabase;
     * 端口号
    @Column(name = "r_port")
    private Integer rPort;
     * 用户名
    @Column(name = "r_username")
    private String rUsername;
    @Column(name = "r_password")
    private String rPassword;
    private static final long serialVersionUID = 1L;
     * @return id
    public Integer getId() {
        return id;
     * @param id
    public void setId(Integer id) {
        this.id = id;
     * 获取资源库描述
     * @return r_name - 资源库描述
    public String getrName() {
        return rName;
     * 设置资源库描述
     * @param rName 资源库描述
    public void setrName(String rName) {
        this.rName = rName;
     * 获取主机地址
     * @return r_server - 主机地址
    public String getrServer() {
        return rServer;
     * 设置主机地址
     * @param rServer 主机地址
    public void setrServer(String rServer) {
        this.rServer = rServer;
     * 获取数据库类型
     * @return r_type - 数据库类型
    public String getrType() {
        return rType;
     * 设置数据库类型
     * @param rType 数据库类型
    public void setrType(String rType) {
        this.rType = rType;
     * 获取连接方式
     * @return r_access - 连接方式
    public String getrAccess() {
        return rAccess;
     * 设置连接方式
     * @param rAccess 连接方式
    public void setrAccess(String rAccess) {
        this.rAccess = rAccess;
     * 获取数据库名
     * @return r_database - 数据库名
    public String getrDatabase() {
        return rDatabase;
     * 设置数据库名
     * @param rDatabase 数据库名
    public void setrDatabase(String rDatabase) {
        this.rDatabase = rDatabase;
     * 获取端口号
     * @return r_port - 端口号
    public Integer getrPort() {
        return rPort;
     * 设置端口号
     * @param rPort 端口号
    public void setrPort(Integer rPort) {
        this.rPort = rPort;
     * 获取用户名
     * @return r_username - 用户名
    public String getrUsername() {
        return rUsername;
     * 设置用户名
     * @param rUsername 用户名
    public void setrUsername(String rUsername) {
        this.rUsername = rUsername;
     * 获取密码
     * @return r_password - 密码
    public String getrPassword() {
        return rPassword;
     * 设置密码
     * @param rPassword 密码
    public void setrPassword(String rPassword) {
        this.rPassword = rPassword;
                                    对向前兼容性的推荐 :如果想要动态地创造Transformation (例如:从元数据),使用XML文件方法(KTR)而不是使用API。 XML文件兼容Kettle所有版本,同样对job有效的。  
下面的例子进行以下操作:
	1创建Transformation 
	2保存Transformation信息到XML文件 
	3获取在目标表操作的SQL
	4执行Transformation 
	5drop目标表,使这个示例可以重复。
                                    感言:网络的确帮助了我们,但是kettle的资料真实太少,英语学好是有必要的;
整体思路:创建javaproject→导入kettle所需要的包→实现kettle中的对象→重写对象内容→调用对象执行;
 1 package kettle;
 3 //需要导入的包
 4 import java.util.List;
 5 import java.util.Map;
                                    本资源主要内容包括(资源有保证,都是干货,一看就会):
1.KETTLE远程服务配置及启动说明。
2.JAVA传参调用KETTLE远程服务执行任务实现过程及注意事项说明。
3.附件包括:配套说明文档、代码包、KETLLE任务测试文件及数据库脚本。
                                    依赖的jar包以pom的形式引入,有诸多版本,如果与kettle的版本不匹配则会调用失败。因为在java代码里会初始化插件来执行任务,查看插件版本9.0.0.0-423.
仓库镜像地址:
<repository>
    <id>pentaho-public</id>
    <name>Pentaho Public</name>
    <url>https://repo.orl.eng.hitachivantara.com/arti
                                    Kettle软件主要提供了4种数据库连接方式,分别是JDBC、ODBC、OCI、JNDI,其中OCI只适用于Oracle。本文重点对使用比较普遍的JDBC和JNDI连接方式进行探讨。
     *  * 连接到资源库
    private static KettleDatabaseRepository RepositoryCon() throws KettleException {
        // 初始化环境
        if (!KettleEnvironment.isInitialized()) {
已知的连接资源库方式有两种,一种是通过读取XML配置连接,一种是在代码中动态绑定资源库
Java连接kettle需要配置一个译码插件,该插件通过xml配置,并将该xml放至classpath路径下,名称为:kettle-password-encoder-plugins.xml,这个xml有个配置的模板在源码中,位于下列包中
运行时绑定资源库
private st...