Class InstanceQuery

java.lang.Object
weka.experiment.DatabaseUtils
weka.experiment.InstanceQuery
All Implemented Interfaces:
Serializable, OptionHandler, RevisionHandler, InstanceQueryAdapter

public class InstanceQuery extends DatabaseUtils implements OptionHandler, InstanceQueryAdapter
Convert the results of a database query into instances. The jdbc driver and database to be used default to "jdbc.idbDriver" and "jdbc:idb=experiments.prp". These may be changed by creating a java properties file called DatabaseUtils.props in user.home or the current directory. eg:

 jdbcDriver=jdbc.idbDriver
 jdbcURL=jdbc:idb=experiments.prp
 

Command line use just outputs the instances to System.out.

Valid options are:

 -Q <query>
  SQL query to execute.
 
 -S
  Return sparse rather than normal instances.
 
 -U <username>
  The username to use for connecting.
 
 -P <password>
  The password to use for connecting.
 
 -D
  Enables debug output.
 
Version:
$Revision: 11885 $
Author:
Len Trigg (trigg@cs.waikato.ac.nz)
See Also:
  • Constructor Details

    • InstanceQuery

      public InstanceQuery() throws Exception
      Sets up the database drivers
      Throws:
      Exception - if an error occurs
  • Method Details

    • listOptions

      public Enumeration<Option> listOptions()
      Returns an enumeration describing the available options

      Specified by:
      listOptions in interface OptionHandler
      Returns:
      an enumeration of all options
    • setOptions

      public void setOptions(String[] options) throws Exception
      Parses a given list of options. Valid options are:

       -Q <query>
        SQL query to execute.
       
       -S
        Return sparse rather than normal instances.
       
       -U <username>
        The username to use for connecting.
       
       -P <password>
        The password to use for connecting.
       
       -D
        Enables debug output.
       
      Specified by:
      setOptions in interface OptionHandler
      Parameters:
      options - the list of options as an array of strings
      Throws:
      Exception - if an option is not supported
    • queryTipText

      public String queryTipText()
      Returns the tip text for this property
      Returns:
      tip text for this property suitable for displaying in the explorer/experimenter gui
    • setQuery

      public void setQuery(String q)
      Set the query to execute against the database
      Parameters:
      q - the query to execute
    • getQuery

      public String getQuery()
      Get the query to execute against the database
      Returns:
      the query
    • sparseDataTipText

      public String sparseDataTipText()
      Returns the tip text for this property
      Returns:
      tip text for this property suitable for displaying in the explorer/experimenter gui
    • setSparseData

      public void setSparseData(boolean s)
      Sets whether data should be encoded as sparse instances
      Parameters:
      s - true if data should be encoded as a set of sparse instances
    • getSparseData

      public boolean getSparseData()
      Gets whether data is to be returned as a set of sparse instances
      Specified by:
      getSparseData in interface InstanceQueryAdapter
      Returns:
      true if data is to be encoded as sparse instances
    • setCustomPropsFile

      public void setCustomPropsFile(File value)
      Sets the custom properties file to use.
      Parameters:
      value - the custom props file to load database parameters from, use null or directory to disable custom properties.
      See Also:
    • getCustomPropsFile

      public File getCustomPropsFile()
      Returns the custom properties file in use, if any.
      Returns:
      the custom props file, null if none used
    • customPropsFileTipText

      public String customPropsFileTipText()
      The tip text for this property.
      Returns:
      the tip text
    • getOptions

      public String[] getOptions()
      Gets the current settings of InstanceQuery
      Specified by:
      getOptions in interface OptionHandler
      Returns:
      an array of strings suitable for passing to setOptions()
    • retrieveInstances

      public Instances retrieveInstances() throws Exception
      Makes a database query using the query set through the -Q option to convert a table into a set of instances
      Returns:
      the instances contained in the result of the query
      Throws:
      Exception - if an error occurs
    • retrieveInstances

      public static Instances retrieveInstances(InstanceQueryAdapter adapter, ResultSet rs) throws Exception
      Throws:
      Exception
    • retrieveInstances

      public Instances retrieveInstances(String query) throws Exception
      Makes a database query to convert a table into a set of instances
      Parameters:
      query - the query to convert to instances
      Returns:
      the instances contained in the result of the query, NULL if the SQL query doesn't return a ResultSet, e.g., DELETE/INSERT/UPDATE
      Throws:
      Exception - if an error occurs
    • main

      public static void main(String[] args)
      Test the class from the command line. The instance query should be specified with -Q sql_query
      Parameters:
      args - contains options for the instance query
    • getRevision

      public String getRevision()
      Returns the revision string.
      Specified by:
      getRevision in interface RevisionHandler
      Overrides:
      getRevision in class DatabaseUtils
      Returns:
      the revision