org.joone.io
Class JDBCInputSynapse

java.lang.Object
  extended by org.joone.engine.Synapse
      extended by org.joone.io.StreamInputSynapse
          extended by org.joone.io.JDBCInputSynapse
All Implemented Interfaces:
java.io.Serializable, InputPatternListener, Learnable, LearnableSynapse, NeuralElement, OutputPatternListener, Inspectable, InputSynapse, PlugInListener

public class JDBCInputSynapse
extends StreamInputSynapse

The JDBCInputSynapse provides support for data extraction from a database. To use this synapse the user should ensure a JDBC Type 4 Driver is in the class path. It is possible to use other JDBC driver types though you will have to refer to the vendors documentation, it may require extra software insallation and this may limit your distributtion to certain Operating Systems.

The properties required by this JDBCInputSynapse Plugin are the following

Database Driver Name - e.g sun.jdbc.odbc.JdbcOdbcDriver

Database URL - e.g jdbc:mysql://localhost/MyDb?user=myuser&password=mypass

SQLquery - e.g select val1,val2,result from xor;

Advanced Column Selector - This selects the values from the query result e.g '1,2' would select val1 and val2. in this case.

Note : The database URL uses specific protocol after the "jdbc:" section check with the jdbc driver vendor for specific info.

Some commonly used Driver protocols shown below ...


Driver {com.mysql.jdbc.Driver}

Protocol {jdbc:mysql://[hostname][,failoverhost...][:port]/[dbname][?param1=value1][¶m2=value2].....} MySQL Protool

Example {jdbc:mysql://localhost/test?user=blah&password=blah}

Web Site {http://www.mysql.com}


Driver {sun.jdbc.odbc.JdbcOdbcDriver}

Protocol { jdbc:odbc:[;=]* } ODBC Protocol

Example {jdbc:odbc:mydb;UID=me;PWD=secret}

Web Site {http://www.java.sun.com}


Data Types


Any fields selected from a database should contain a single double or float format value. The data type is not so important it can be text or a number field so long as it contains just one double or float format value.

E.g Correct = '2.31' Wrong= '3.45;1.21' and Wrong = 'hello'

Author:
Julien Norman, Cezary Dendek
See Also:
Serialized Form

Field Summary
 
Fields inherited from class org.joone.io.StreamInputSynapse
cols, currentRow, EOF, InputVector, plugInListeners, tokens
 
Fields inherited from class org.joone.engine.Synapse
array, b_pattern, bitems, bouts, count, enabled, fwdLock, inps, items, learnable, m_batch, m_pattern, myLearner, outs, revLock
 
Constructor Summary
JDBCInputSynapse()
          Constructor for the JDBCInputSynapse object
JDBCInputSynapse(java.lang.String newDrivername, java.lang.String newdbURL, java.lang.String newSQLQuery, java.lang.String newAdvColSel, int newfirstRow, int newlastRow, boolean buffered)
          Constructor for the JDBCInputSynapse object that allows all options.
 
Method Summary
 java.util.TreeSet check()
          Check that parameters are set correctly for the this JDBCInputSynapse object.
 java.lang.String getdbURL()
          Gets the name of the database Universal Resource Location (URL)
 java.lang.String getdriverName()
          Gets the name of the database jdbc driver used by this JDBC input syanpse.
 java.lang.String getSQLQuery()
          Gets the SQL Query used to select data from the database.
protected  void initInputStream()
          Connects to the database using Driver name and db URL and selects data using the SQLQuery.
 void setdbURL(java.lang.String newdbURL)
          Gets the name of the database Universal Resource Location (URL)
 void setdriverName(java.lang.String newDriverName)
          Sets the name of the database jdbc driver.
 void setSQLQuery(java.lang.String newSQLQuery)
          Sets the sQLQuery attribute of the JDBCInputSynapse object
 
Methods inherited from class org.joone.io.StreamInputSynapse
addPlugIn, addPlugInListener, backward, dataChanged, fireDataChanged, forward, fwdGet, fwdGet, getAdvancedColumnSelector, getAllPlugInListeners, getCurrentRow, getDecimalPoint, getFirstCol, getFirstRow, getInputPatterns, getInputVector, getLastCol, getLastRow, getMaxBufSize, getPlugIn, getStream, getTokens, gotoFirstLine, gotoLine, handleExceptionWithError, handleExceptionWithWarn, InspectableTitle, Inspections, isBuffered, isEOF, isStepCounter, numColumns, readAll, readObjectBase, removeAllPlugIns, removePlugInListener, reset, resetInput, restart, revPut, setAdvancedColumnSelector, setArrays, setBuffered, setColList, setDecimalPoint, setDimensions, setEOF, setFirstCol, setFirstRow, setInputPatterns, setLastCol, setLastRow, setMaxBufSize, setPlugin, setPlugIn, setStepCounter, setTokens, writeObjectBase, zeroPattern
 
Methods inherited from class org.joone.engine.Synapse
addNoise, canCountSteps, fwdPattern_consume, fwdPattern_produce, fwdPut, getCount, getFwdLock, getIgnoreBefore, getInputDimension, getLearner, getLearningRate, getMomentum, getMonitor, getName, getOutputDimension, getRevLock, getSynapseNameSafely, getWeights, init, initLearner, isEnabled, isInputFull, isLoopBack, isOutputFull, randomize, readResolve, revGet, revPattern_consume, revPattern_produce, setEnabled, setIgnoreBefore, setInputDimension, setInputFull, setLearningRate, setLoopBack, setMomentum, setMonitor, setName, setOutputDimension, setOutputFull, setWeights, warnLogger, warnLogger
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

JDBCInputSynapse

public JDBCInputSynapse()
Constructor for the JDBCInputSynapse object


JDBCInputSynapse

public JDBCInputSynapse(java.lang.String newDrivername,
                        java.lang.String newdbURL,
                        java.lang.String newSQLQuery,
                        java.lang.String newAdvColSel,
                        int newfirstRow,
                        int newlastRow,
                        boolean buffered)

Constructor for the JDBCInputSynapse object that allows all options. Allows the user to construct a JDBCInputSynapse in one call.

Parameters:
newDrivername - The class name of the database driver to use.
newdbURL - The Universal Resource Locator to enable connection to the database.
newSQLQuery - The database SQL query to apply to the database.
newAdvColSel - The comma delimited selection of what data columns to use.
newfirstRow - The first row to apply to the network.
newlastRow - The last row to apply to the network.
buffered - Whether this synapse is buffered or not.
Method Detail

getdriverName

public java.lang.String getdriverName()
Gets the name of the database jdbc driver used by this JDBC input syanpse.

Returns:
The JDBC Driver name

getdbURL

public java.lang.String getdbURL()
Gets the name of the database Universal Resource Location (URL)

Returns:
The database URL used by this JDBC input syanpse.

getSQLQuery

public java.lang.String getSQLQuery()
Gets the SQL Query used to select data from the database.

Returns:
The sQLQuery used by this JDBC input syanpse.

setdriverName

public void setdriverName(java.lang.String newDriverName)
Sets the name of the database jdbc driver.

Parameters:
newDriverName - The JDBC Driver name

setdbURL

public void setdbURL(java.lang.String newdbURL)
Gets the name of the database Universal Resource Location (URL)

Parameters:
newdbURL - The database URL to use for selecting input. See the notes on this class for usage.

setSQLQuery

public void setSQLQuery(java.lang.String newSQLQuery)
Sets the sQLQuery attribute of the JDBCInputSynapse object

Parameters:
newSQLQuery - The new database SQL Query.

initInputStream

protected void initInputStream()
                        throws JooneRuntimeException
Connects to the database using Driver name and db URL and selects data using the SQLQuery.

Specified by:
initInputStream in class StreamInputSynapse
Throws:
JooneRuntimeException

check

public java.util.TreeSet check()
Check that parameters are set correctly for the this JDBCInputSynapse object.

Specified by:
check in interface NeuralElement
Overrides:
check in class StreamInputSynapse
Returns:
validation errors.
See Also:
Synapse


Submit Feedback to pmarrone@users.sourceforge.net