Class DatabaseSaver

java.lang.Object
weka.core.converters.AbstractSaver
weka.core.converters.DatabaseSaver
All Implemented Interfaces:
Serializable, CapabilitiesHandler, BatchConverter, DatabaseConverter, IncrementalConverter, Saver, OptionHandler, RevisionHandler

public class DatabaseSaver extends AbstractSaver implements BatchConverter, IncrementalConverter, DatabaseConverter, OptionHandler
Writes to a database (tested with MySQL, InstantDB, HSQLDB).

Valid options are:

 -url <JDBC URL>
  The JDBC URL to connect to.
  (default: from DatabaseUtils.props file)
 -user <name>
  The user to connect with to the database.
  (default: none)
 -password <password>
  The password to connect with to the database.
  (default: none)
 -T <table name>
  The name of the table.
  (default: the relation name)
 -P
  Add an ID column as primary key. The name is specified
  in the DatabaseUtils file ('idColumn'). The DatabaseLoader
  won't load this column.
 -i <input file name>
  Input file in arff format that should be saved in database.
Version:
$Revision: 7499 $
Author:
Stefan Mutter (mutter@cs.waikato.ac.nz)
See Also:
  • Constructor Details

    • DatabaseSaver

      public DatabaseSaver() throws Exception
      Constructor.
      Throws:
      Exception - throws Exception if property file cannot be read
  • Method Details

    • resetOptions

      public void resetOptions()
      Resets the Saver ready to save a new data set.
      Overrides:
      resetOptions in class AbstractSaver
    • cancel

      public void cancel()
      Cancels the incremental saving process and tries to drop the table if the write mode is CANCEL.
      Overrides:
      cancel in class AbstractSaver
    • globalInfo

      public String globalInfo()
      Returns a string describing this Saver.
      Returns:
      a description of the Saver suitable for displaying in the explorer/experimenter gui
    • setTableName

      public void setTableName(String tn)
      Sets the table's name.
      Parameters:
      tn - the name of the table
    • getTableName

      public String getTableName()
      Gets the table's name.
      Returns:
      the table's name
    • tableNameTipText

      public String tableNameTipText()
      Returns the tip text for this property.
      Returns:
      the tip text for this property
    • setAutoKeyGeneration

      public void setAutoKeyGeneration(boolean flag)
      En/Dis-ables the automatic generation of a primary key.
      Parameters:
      flag - flag for automatic key-genereration
    • getAutoKeyGeneration

      public boolean getAutoKeyGeneration()
      Gets whether or not a primary key will be generated automatically.
      Returns:
      true if a primary key column will be generated, false otherwise
    • autoKeyGenerationTipText

      public String autoKeyGenerationTipText()
      Returns the tip text for this property.
      Returns:
      tip text for this property
    • setRelationForTableName

      public void setRelationForTableName(boolean flag)
      En/Dis-ables that the relation name is used for the name of the table (default enabled).
      Parameters:
      flag - if true the relation name is used as table name
    • getRelationForTableName

      public boolean getRelationForTableName()
      Gets whether or not the relation name is used as name of the table.
      Returns:
      true if the relation name is used as the name of the table, false otherwise
    • relationForTableNameTipText

      public String relationForTableNameTipText()
      Returns the tip text fo this property.
      Returns:
      the tip text for this property
    • setUrl

      public void setUrl(String url)
      Sets the database URL.
      Specified by:
      setUrl in interface DatabaseConverter
      Parameters:
      url - the URL
    • getUrl

      public String getUrl()
      Gets the database URL.
      Specified by:
      getUrl in interface DatabaseConverter
      Returns:
      the URL
    • urlTipText

      public String urlTipText()
      Returns the tip text for this property.
      Returns:
      the tip text for this property
    • setUser

      public void setUser(String user)
      Sets the database user.
      Specified by:
      setUser in interface DatabaseConverter
      Parameters:
      user - the user name
    • getUser

      public String getUser()
      Gets the database user.
      Specified by:
      getUser in interface DatabaseConverter
      Returns:
      the user name
    • userTipText

      public String userTipText()
      Returns the tip text for this property.
      Returns:
      the tip text for this property
    • setPassword

      public void setPassword(String password)
      Sets the database password.
      Specified by:
      setPassword in interface DatabaseConverter
      Parameters:
      password - the password
    • getPassword

      public String getPassword()
      Returns the database password.
      Returns:
      the database password
    • passwordTipText

      public String passwordTipText()
      Returns the tip text for this property.
      Returns:
      the tip text for this property
    • setDestination

      public void setDestination(String url, String userName, String password)
      Sets the database url.
      Parameters:
      url - the database url
      userName - the user name
      password - the password
    • setDestination

      public void setDestination(String url)
      Sets the database url.
      Parameters:
      url - the database url
    • setDestination

      public void setDestination()
      Sets the database url using the DatabaseUtils file.
    • getCapabilities

      public Capabilities getCapabilities()
      Returns the Capabilities of this saver.
      Specified by:
      getCapabilities in interface CapabilitiesHandler
      Overrides:
      getCapabilities in class AbstractSaver
      Returns:
      the capabilities of this object
      See Also:
    • connectToDatabase

      public void connectToDatabase()
      Opens a connection to the database.
    • writeIncremental

      public void writeIncremental(Instance inst) throws IOException
      Saves an instances incrementally. Structure has to be set by using the setStructure() method or setInstances() method. When a structure is set, a table is created.
      Specified by:
      writeIncremental in interface Saver
      Overrides:
      writeIncremental in class AbstractSaver
      Parameters:
      inst - the instance to save
      Throws:
      IOException - throws IOEXception.
    • writeBatch

      public void writeBatch() throws IOException
      Writes a Batch of instances.
      Specified by:
      writeBatch in interface Saver
      Specified by:
      writeBatch in class AbstractSaver
      Throws:
      IOException - throws IOException
    • getOptions

      public String[] getOptions()
      Gets the setting.
      Specified by:
      getOptions in interface OptionHandler
      Returns:
      the current setting
    • listOptions

      public Enumeration listOptions()
      Lists the available options.
      Specified by:
      listOptions in interface OptionHandler
      Returns:
      an enumeration of the available options
    • setOptions

      public void setOptions(String[] options) throws Exception
      Sets the options.

      Valid options are:

       -url <JDBC URL>
        The JDBC URL to connect to.
        (default: from DatabaseUtils.props file)
       -user <name>
        The user to connect with to the database.
        (default: none)
       -password <password>
        The password to connect with to the database.
        (default: none)
       -T <table name>
        The name of the table.
        (default: the relation name)
       -P
        Add an ID column as primary key. The name is specified
        in the DatabaseUtils file ('idColumn'). The DatabaseLoader
        won't load this column.
       -i <input file name>
        Input file in arff format that should be saved in database.
      Specified by:
      setOptions in interface OptionHandler
      Parameters:
      options - the options
      Throws:
      Exception - if options cannot be set
    • getRevision

      public String getRevision()
      Returns the revision string.
      Specified by:
      getRevision in interface RevisionHandler
      Returns:
      the revision
    • main

      public static void main(String[] options)
      Main method.
      Parameters:
      options - should contain the options of a Saver.