Package weka.core.converters

# 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:
  - Serialized Form

## Field Summary

### Fields inherited from interface weka.core.converters.Saver

`BATCH, INCREMENTAL, NONE`

## Constructor Summary

Constructors
Constructor
Description
`DatabaseSaver()`
Constructor.

## Method Summary

Modifier and Type
Method
Description
`String`
`autoKeyGenerationTipText()`
Returns the tip text for this property.
`void`
`cancel()`
Cancels the incremental saving process and tries to drop the table if the write mode is CANCEL.
`void`
`connectToDatabase()`
Opens a connection to the database.
`boolean`
`getAutoKeyGeneration()`
Gets whether or not a primary key will be generated automatically.
`Capabilities`
`getCapabilities()`
Returns the Capabilities of this saver.
`String[]`
`getOptions()`
Gets the setting.
`String`
`getPassword()`
Returns the database password.
`boolean`
`getRelationForTableName()`
Gets whether or not the relation name is used as name of the table.
`String`
`getRevision()`
Returns the revision string.
`String`
`getTableName()`
Gets the table's name.
`String`
`getUrl()`
Gets the database URL.
`String`
`getUser()`
Gets the database user.
`String`
`globalInfo()`
Returns a string describing this Saver.
`Enumeration`
`listOptions()`
Lists the available options.
`static void`
`main(String[] options)`
Main method.
`String`
`passwordTipText()`
Returns the tip text for this property.
`String`
`relationForTableNameTipText()`
Returns the tip text fo this property.
`void`
`resetOptions()`
Resets the Saver ready to save a new data set.
`void`
`setAutoKeyGeneration(boolean flag)`
En/Dis-ables the automatic generation of a primary key.
`void`
`setDestination()`
Sets the database url using the DatabaseUtils file.
`void`
`setDestination(String url)`
Sets the database url.
`void`
`setDestination(String url, String userName, String password)`
Sets the database url.
`void`
`setOptions(String[] options)`
Sets the options.
`void`
`setPassword(String password)`
Sets the database password.
`void`
`setRelationForTableName(boolean flag)`
En/Dis-ables that the relation name is used for the name of the table (default enabled).
`void`
`setTableName(String tn)`
Sets the table's name.
`void`
`setUrl(String url)`
Sets the database URL.
`void`
`setUser(String user)`
Sets the database user.
`String`
`tableNameTipText()`
Returns the tip text for this property.
`String`
`urlTipText()`
Returns the tip text for this property.
`String`
`userTipText()`
Returns the tip text for this property.
`void`
`writeBatch()`
Writes a Batch of instances.
`void`
`writeIncremental(Instance inst)`
Saves an instances incrementally.

### Methods inherited from class weka.core.converters.AbstractSaver

`filePrefix, getFileExtension, getInstances, getWriteMode, resetStructure, retrieveDir, setDestination, setDestination, setDir, setDirAndPrefix, setFile, setFilePrefix, setInstances, setRetrieval, setStructure`

### Methods inherited from class java.lang.Object

`equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## 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:
  - `Capabilities`

### 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.