org.pentaho.di.core.database.Database.getTableFields()方法的使用及代码示例

x33g5p2x  于2022-01-18 转载在 其他  
字(11.7k)|赞(0)|评价(0)|浏览(182)

本文整理了Java中org.pentaho.di.core.database.Database.getTableFields()方法的一些代码示例,展示了Database.getTableFields()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Database.getTableFields()方法的具体详情如下:
包路径:org.pentaho.di.core.database.Database
类名称:Database
方法名:getTableFields

Database.getTableFields介绍

[英]Returns a RowMeta describing the fields of a table expression.

Note that this implementation makes use of a SQL statement in order to populate the ValueMeta object in the RowMeta it returns. This is sometimes necessary when the caller needs the ValueMeta values to be properly casted.

In cases where a simple list of columns is required, it is preferable to use #getTableFieldsMeta(String,String). This other method will not use a SQL query and will populate whatever information it can using @link DatabaseMetaData#getColumns(String,String,String,String).
[中]返回描述表表达式字段的RowMeta。
请注意,此实现使用SQL语句在返回的RowMeta中填充ValueMeta对象。当调用方需要正确转换ValueMeta值时,这有时是必要的。
在需要简单列列表的情况下,最好使用#getTableFieldsMeta(String,String)。另一个方法将不使用SQL查询,而是使用@link DatabaseMetaData#getColumns(String,String,String,String)填充它可以填充的任何信息。

代码示例

代码示例来源:origin: pentaho/pentaho-kettle

  1. protected RowMetaInterface getDatabaseTableFields( Database db, String schemaName, String tableName )
  2. throws KettleDatabaseException {
  3. // First try without connecting to the database... (can be S L O W)
  4. String schemaTable = databaseMeta.getQuotedSchemaTableCombination( schemaName, tableName );
  5. RowMetaInterface extraFields = db.getTableFields( schemaTable );
  6. if ( extraFields == null ) { // now we need to connect
  7. db.connect();
  8. extraFields = db.getTableFields( schemaTable );
  9. }
  10. return extraFields;
  11. }

代码示例来源:origin: pentaho/pentaho-kettle

  1. private Database mockDatabase() throws KettleDatabaseException {
  2. Database databaseMock = mock( Database.class );
  3. RowMeta databaseRowMeta = new RowMeta();
  4. databaseRowMeta.addValueMeta( new ValueMetaString( "id" ) );
  5. databaseRowMeta.addValueMeta( new ValueMetaString( "value" ) );
  6. doReturn( databaseRowMeta ).when( databaseMock ).getTableFields( anyString() );
  7. doReturn( databaseRowMeta ).when( databaseMock ).getTableFieldsMeta( anyString(), anyString() );
  8. doReturn( Arrays.asList( new Object[][] { { "1", "value" } } ) ).when( databaseMock ).getRows( anyString(),
  9. anyInt() );
  10. doReturn( databaseRowMeta ).when( databaseMock ).getReturnRowMeta();
  11. return databaseMock;
  12. }

代码示例来源:origin: pentaho/pentaho-kettle

  1. private RowMetaInterface getTableFields( LoggingObjectInterface parentLoggingObject ) throws KettleDatabaseException {
  2. Database database = new Database( parentLoggingObject, databaseMeta );
  3. try {
  4. database.connect();
  5. return database.getTableFields( schemaTable );
  6. } finally {
  7. database.disconnect();
  8. }
  9. }

代码示例来源:origin: pentaho/pentaho-kettle

  1. private Database createVirtualDb( DatabaseMeta meta ) throws Exception {
  2. ResultSet rs = mock( ResultSet.class );
  3. when( rs.getMetaData() ).thenReturn( mock( ResultSetMetaData.class ) );
  4. PreparedStatement ps = mock( PreparedStatement.class );
  5. when( ps.executeQuery() ).thenReturn( rs );
  6. Connection connection = mock( Connection.class );
  7. when( connection.prepareStatement( anyString() ) ).thenReturn( ps );
  8. Database db = new Database( mock( LoggingObjectInterface.class ), meta );
  9. db.setConnection( connection );
  10. db = spy( db );
  11. doNothing().when( db ).normalConnect( anyString() );
  12. ValueMetaInterface binary = new ValueMetaString( BINARY_FIELD );
  13. binary.setStorageType( ValueMetaInterface.STORAGE_TYPE_BINARY_STRING );
  14. ValueMetaInterface id = new ValueMetaInteger( ID_FIELD );
  15. RowMetaInterface metaByQuerying = new RowMeta();
  16. metaByQuerying.addValueMeta( binary );
  17. metaByQuerying.addValueMeta( id );
  18. doReturn( metaByQuerying ).when( db ).getTableFields( anyString() );
  19. doReturn( metaByQuerying ).when( db ).getTableFieldsMeta( anyString(), anyString() );
  20. return db;
  21. }

代码示例来源:origin: pentaho/pentaho-kettle

  1. targetdb.connect();
  2. String tableName = getSchemaAndTable( model );
  3. RowMetaInterface r = targetdb.getTableFields( tableName );

代码示例来源:origin: pentaho/pentaho-kettle

  1. public void getDDL() {
  2. if ( model.getTable() == null ) {
  3. return;
  4. }
  5. Database db = new Database( null, this.model.getDatabaseMeta() );
  6. try {
  7. db.connect();
  8. String tableName = getSchemaAndTable( this.model );
  9. RowMetaInterface r = db.getTableFields( tableName );
  10. String sql = db.getCreateTableStatement( tableName, r, null, false, null, true );
  11. SQLEditor se =
  12. new SQLEditor( this.getDatabaseMeta(), this.dbExplorerDialog.getShell(), SWT.NONE, this.model
  13. .getDatabaseMeta(), this.dbcache, sql );
  14. se.open();
  15. } catch ( KettleDatabaseException dbe ) {
  16. new ErrorDialog(
  17. this.dbExplorerDialog.getShell(), BaseMessages.getString( PKG, "Dialog.Error.Header" ), BaseMessages
  18. .getString( PKG, "DatabaseExplorerDialog.Error.RetrieveLayout" ), dbe );
  19. } finally {
  20. db.disconnect();
  21. }
  22. }

代码示例来源:origin: pentaho/pentaho-kettle

  1. @Override
  2. public RowMetaInterface getRequiredFields( VariableSpace space ) throws KettleException {
  3. String realTableName = space.environmentSubstitute( tableName );
  4. String realSchemaName = space.environmentSubstitute( schemaName );
  5. if ( databaseMeta != null ) {
  6. Database db = new Database( loggingObject, databaseMeta );
  7. try {
  8. db.connect();
  9. if ( !Utils.isEmpty( realTableName ) ) {
  10. String schemaTable = databaseMeta.getQuotedSchemaTableCombination( realSchemaName, realTableName );
  11. // Check if this table exists...
  12. if ( db.checkTableExists( schemaTable ) ) {
  13. return db.getTableFields( schemaTable );
  14. } else {
  15. throw new KettleException( BaseMessages.getString( PKG, "GPBulkLoaderMeta.Exception.TableNotFound" ) );
  16. }
  17. } else {
  18. throw new KettleException( BaseMessages.getString( PKG, "GPBulkLoaderMeta.Exception.TableNotSpecified" ) );
  19. }
  20. } catch ( Exception e ) {
  21. throw new KettleException(
  22. BaseMessages.getString( PKG, "GPBulkLoaderMeta.Exception.ErrorGettingFields" ), e );
  23. } finally {
  24. db.disconnect();
  25. }
  26. } else {
  27. throw new KettleException( BaseMessages.getString( PKG, "GPBulkLoaderMeta.Exception.ConnectionNotDefined" ) );
  28. }
  29. }

代码示例来源:origin: pentaho/pentaho-kettle

  1. public RowMetaInterface getRequiredFields( VariableSpace space ) throws KettleException {
  2. String realTableName = space.environmentSubstitute( tableName );
  3. String realSchemaName = space.environmentSubstitute( schemaName );
  4. if ( databaseMeta != null ) {
  5. Database db = new Database( loggingObject, databaseMeta );
  6. try {
  7. db.connect();
  8. if ( !Utils.isEmpty( realTableName ) ) {
  9. String schemaTable = databaseMeta.getQuotedSchemaTableCombination( realSchemaName, realTableName );
  10. // Check if this table exists...
  11. if ( db.checkTableExists( schemaTable ) ) {
  12. return db.getTableFields( schemaTable );
  13. } else {
  14. throw new KettleException( BaseMessages.getString( PKG, "OraBulkLoaderMeta.Exception.TableNotFound" ) );
  15. }
  16. } else {
  17. throw new KettleException( BaseMessages.getString( PKG, "OraBulkLoaderMeta.Exception.TableNotSpecified" ) );
  18. }
  19. } catch ( Exception e ) {
  20. throw new KettleException(
  21. BaseMessages.getString( PKG, "OraBulkLoaderMeta.Exception.ErrorGettingFields" ), e );
  22. } finally {
  23. db.disconnect();
  24. }
  25. } else {
  26. throw new KettleException( BaseMessages.getString( PKG, "OraBulkLoaderMeta.Exception.ConnectionNotDefined" ) );
  27. }
  28. }

代码示例来源:origin: pentaho/pentaho-kettle

  1. public RowMetaInterface getRequiredFields( VariableSpace space ) throws KettleException {
  2. String realTableName = space.environmentSubstitute( tableName );
  3. String realSchemaName = space.environmentSubstitute( schemaName );
  4. if ( databaseMeta != null ) {
  5. Database db = new Database( loggingObject, databaseMeta );
  6. try {
  7. db.connect();
  8. if ( !Utils.isEmpty( realTableName ) ) {
  9. String schemaTable = databaseMeta.getQuotedSchemaTableCombination( realSchemaName, realTableName );
  10. // Check if this table exists...
  11. if ( db.checkTableExists( schemaTable ) ) {
  12. return db.getTableFields( schemaTable );
  13. } else {
  14. throw new KettleException( BaseMessages.getString( PKG, "MySQLBulkLoaderMeta.Exception.TableNotFound" ) );
  15. }
  16. } else {
  17. throw new KettleException( BaseMessages.getString( PKG, "MySQLBulkLoaderMeta.Exception.TableNotSpecified" ) );
  18. }
  19. } catch ( Exception e ) {
  20. throw new KettleException( BaseMessages.getString( PKG, "MySQLBulkLoaderMeta.Exception.ErrorGettingFields" ), e );
  21. } finally {
  22. db.disconnect();
  23. }
  24. } else {
  25. throw new KettleException( BaseMessages.getString( PKG, "MySQLBulkLoaderMeta.Exception.ConnectionNotDefined" ) );
  26. }
  27. }

代码示例来源:origin: pentaho/pentaho-kettle

  1. public RowMetaInterface getRequiredFields( VariableSpace space ) throws KettleException {
  2. String realTableName = space.environmentSubstitute( tableName );
  3. String realSchemaName = space.environmentSubstitute( schemaName );
  4. if ( databaseMeta != null ) {
  5. Database db = new Database( loggingObject, databaseMeta );
  6. try {
  7. db.connect();
  8. if ( !Utils.isEmpty( realTableName ) ) {
  9. String schemaTable = databaseMeta.getQuotedSchemaTableCombination( realSchemaName, realTableName );
  10. // Check if this table exists...
  11. if ( db.checkTableExists( schemaTable ) ) {
  12. return db.getTableFields( schemaTable );
  13. } else {
  14. throw new KettleException( BaseMessages.getString( PKG, "GPLoadMeta.Exception.TableNotFound" ) );
  15. }
  16. } else {
  17. throw new KettleException( BaseMessages.getString( PKG, "GPLoadMeta.Exception.TableNotSpecified" ) );
  18. }
  19. } catch ( Exception e ) {
  20. throw new KettleException( BaseMessages.getString( PKG, "GPLoadMeta.Exception.ErrorGettingFields" ), e );
  21. } finally {
  22. db.disconnect();
  23. }
  24. } else {
  25. throw new KettleException( BaseMessages.getString( PKG, "GPLoadMeta.Exception.ConnectionNotDefined" ) );
  26. }
  27. }

代码示例来源:origin: pentaho/pentaho-kettle

  1. public RowMetaInterface getRequiredFields( VariableSpace space ) throws KettleException {
  2. String realTableName = space.environmentSubstitute( tableName );
  3. String realSchemaName = space.environmentSubstitute( schemaName );
  4. if ( databaseMeta != null ) {
  5. Database db = new Database( loggingObject, databaseMeta );
  6. try {
  7. db.connect();
  8. if ( !Utils.isEmpty( realTableName ) ) {
  9. String schemaTable = databaseMeta.getQuotedSchemaTableCombination( realSchemaName, realTableName );
  10. // Check if this table exists...
  11. if ( db.checkTableExists( schemaTable ) ) {
  12. return db.getTableFields( schemaTable );
  13. } else {
  14. throw new KettleException( BaseMessages.getString( PKG, "GPBulkLoaderMeta.Exception.TableNotFound" ) );
  15. }
  16. } else {
  17. throw new KettleException( BaseMessages.getString( PKG, "GPBulkLoaderMeta.Exception.TableNotSpecified" ) );
  18. }
  19. } catch ( Exception e ) {
  20. throw new KettleException(
  21. BaseMessages.getString( PKG, "GPBulkLoaderMeta.Exception.ErrorGettingFields" ), e );
  22. } finally {
  23. db.disconnect();
  24. }
  25. } else {
  26. throw new KettleException( BaseMessages.getString( PKG, "GPBulkLoaderMeta.Exception.ConnectionNotDefined" ) );
  27. }
  28. }

代码示例来源:origin: pentaho/pentaho-kettle

  1. return db.getTableFields( schemaTable );
  2. } else {
  3. throw new KettleException( BaseMessages.getString(

代码示例来源:origin: pentaho/pentaho-kettle

  1. return db.getTableFields( schemaTable );
  2. } else {
  3. throw new KettleException( BaseMessages.getString(

代码示例来源:origin: pentaho/pentaho-kettle

  1. physicalTableRowMeta = db.getTableFields( data.schemaTable );
  2. } catch ( Exception e ) {
  3. physicalTableRowMeta = db.getTableFields( meta.getTableName() );
  4. } catch ( Exception e1 ) {
  5. logBasic( "Could not get metadata for the physical table " + data.schemaTable + "." );

代码示例来源:origin: pentaho/pentaho-kettle

  1. ci.getQuotedSchemaTableCombination( transMeta.environmentSubstitute( schemaName ), transMeta
  2. .environmentSubstitute( tableName ) );
  3. RowMetaInterface r = db.getTableFields( schemaTable );
  4. if ( null != r ) {
  5. String[] fieldNames = r.getFieldNames();

代码示例来源:origin: pentaho/pentaho-kettle

  1. ci.getQuotedSchemaTableCombination( transMeta.environmentSubstitute( schemaName ), transMeta
  2. .environmentSubstitute( tableName ) );
  3. RowMetaInterface r = db.getTableFields( schemaTable );
  4. if ( null != r ) {
  5. String[] fieldNames = r.getFieldNames();

代码示例来源:origin: pentaho/pentaho-kettle

  1. ci.getQuotedSchemaTableCombination( transMeta.environmentSubstitute( schemaName ), transMeta
  2. .environmentSubstitute( tableName ) );
  3. RowMetaInterface r = db.getTableFields( schemaTable );
  4. if ( null != r ) {
  5. String[] fieldNames = r.getFieldNames();

代码示例来源:origin: pentaho/pentaho-kettle

  1. ci.getQuotedSchemaTableCombination( transMeta.environmentSubstitute( schemaName ), transMeta
  2. .environmentSubstitute( tableName ) );
  3. RowMetaInterface r = db.getTableFields( schemaTable );
  4. if ( null != r ) {
  5. String[] fieldNames = r.getFieldNames();

代码示例来源:origin: pentaho/pentaho-kettle

  1. String schemaTable =
  2. databaseMeta.getQuotedSchemaTableCombination( wSchemaname.getText(), wTablename.getText() );
  3. RowMetaInterface row = database.getTableFields( schemaTable );
  4. String[] available = row.getFieldNames();

代码示例来源:origin: pentaho/pentaho-kettle

  1. ci.getQuotedSchemaTableCombination( transMeta.environmentSubstitute( schemaName ), transMeta
  2. .environmentSubstitute( tableName ) );
  3. RowMetaInterface r = db.getTableFields( schemaTable );
  4. if ( null != r ) {
  5. String[] fieldNames = r.getFieldNames();

相关文章