mysql - USER defined java class step in pentaho data integration -
hi,
i using below code in user defined java class:
//step 1. import required packages import java.sql.*; import org.pentaho.di.core.database.*; public class jdbcexample { // jdbc driver name , database url static final string jdbc_driver = "com.mysql.jdbc.driver"; static final string db_url ="jdbc:mysql://localhost:1111/mysql"; // database credentials static final string user = "user"; static final string pass = "pass"; public static void main(string[] args) { connection conn = null; statement stmt = null; try{ //step 2: register jdbc driver class.forname("com.mysql.jdbc.driver"); //step 3: open connection system.out.println("connecting selected database..."); conn = drivermanager.getconnection(db_url, user, pass); system.out.println("connected database successfully..."); //step 4: execute query system.out.println("creating statement..."); stmt = conn.createstatement(); string sql = "select id,sorname,src_databasetype,src_databasename table"; resultset rs = stmt.executequery(sql); //step 5: extract data result set while(rs.next()){ //retrieve column name int id = rs.getint("id"); string sorname = rs.getstring("sorname"); string src_databasetype = rs.getstring("src_databasetype"); string src_databasename = rs.getstring("src_databasename"); //display values system.out.print("id: " + id); system.out.print(", sorname: " + sorname); system.out.print(", src_databasetype: " + src_databasetype); system.out.println(", src_databasename: " + src_databasename); } rs.close(); }catch(sqlexception se){ //handle errors jdbc se.printstacktrace(); }catch(exception e){ //handle errors class.forname e.printstacktrace(); }finally{ //finally block used close resources try{ if(stmt!=null) conn.close(); }catch(sqlexception se){ }// nothing try{ if(conn!=null) conn.close(); }catch(sqlexception se){ se.printstacktrace(); }//end try }//end try system.out.println("goodbye!"); }//end main }//end jdbcexamplerunning code through command prompt working fine
but on running step(in pdi) alone getting error: non-abstract class "processor" must implement method "boolean org.pentaho.di.trans.steps.userdefinedjavaclass.transformclassbase.processrow(org.pentaho.di.trans.step.stepmetainterface, org.pentaho.di.trans.step.stepdatainterface) throws org.pentaho.di.core.exception.kettleexception"
for udjc, think instead of putting code in main method, need put in processrow().
instead of using - public static void main(string[] args) use - public boolean processrow(stepmetainterface smi, stepdatainterface sdi) throws kettleexception
i still skeptical if still going work don't understand you're trying code.
Comments
Post a Comment