|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectweka.experiment.DatabaseUtils
DatabaseUtils provides utility functions for accessing the experiment database. 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
Field Summary | |
static int |
BOOL
|
static int |
BYTE
|
static int |
DATE
|
static int |
DOUBLE
|
protected static java.util.Vector |
DRIVERS
Holds the jdbc drivers to be used (only to stop them being gc'ed) |
static java.lang.String |
EXP_INDEX_TABLE
The name of the table containing the index to experiments |
static java.lang.String |
EXP_RESULT_COL
The name of the column containing the results table name |
static java.lang.String |
EXP_RESULT_PREFIX
The prefix for result table names |
static java.lang.String |
EXP_SETUP_COL
The name of the column containing the experiment setup (parameters) |
static java.lang.String |
EXP_TYPE_COL
The name of the column containing the experiment type (ResultProducer) |
static int |
FLOAT
|
static int |
INTEGER
|
static int |
LONG
|
protected boolean |
m_checkForUpperCaseNames
|
protected java.sql.Connection |
m_Connection
The database connection |
protected boolean |
m_createIndex
|
protected java.lang.String |
m_DatabaseURL
Database URL |
protected boolean |
m_Debug
True if debugging output should be printed |
protected java.lang.String |
m_doubleType
|
protected java.lang.String |
m_intType
|
protected java.lang.String |
m_password
Database Password |
protected java.sql.PreparedStatement |
m_PreparedStatement
The prepared statement used for database queries. |
protected boolean |
m_setAutoCommit
|
protected java.lang.String |
m_stringType
mappings used for creating Tables. |
protected java.lang.String |
m_userName
Database username |
protected static java.util.Properties |
PROPERTIES
Properties associated with the database connection |
protected static java.lang.String |
PROPERTY_FILE
The name of the properties file |
static int |
SHORT
|
static int |
STRING
|
Constructor Summary | |
DatabaseUtils()
Sets up the database drivers |
Method Summary | |
static java.lang.String |
arrayToString(java.lang.Object[] array)
Converts an array of objects to a string by inserting a space between each element. |
protected java.lang.String |
attributeCaseFix(java.lang.String columnName)
|
void |
connectToDatabase()
Opens a connection to the database |
void |
createExperimentIndex()
Attempts to create the experiment index table |
java.lang.String |
createExperimentIndexEntry(ResultProducer rp)
Attempts to insert a results entry for the table into the experiment index. |
java.lang.String |
createResultsTable(ResultProducer rp,
java.lang.String tableName)
Creates a results table for the supplied result producer. |
java.lang.String |
databaseURLTipText()
Returns the tip text for this property |
void |
disconnectFromDatabase()
Closes the connection to the database. |
boolean |
execute(java.lang.String query)
Executes a SQL query. |
boolean |
experimentIndexExists()
Returns true if the experiment index exists. |
java.lang.String |
getDatabaseURL()
Get the value of DatabaseURL. |
java.lang.String |
getPassword()
Get the database password |
java.lang.Object[] |
getResultFromTable(java.lang.String tableName,
ResultProducer rp,
java.lang.Object[] key)
Executes a database query to extract a result for the supplied key from the database. |
java.sql.ResultSet |
getResultSet()
Gets the results generated by a previous query. |
java.lang.String |
getResultsTableName(ResultProducer rp)
Gets the name of the experiment table that stores results from a particular ResultProducer. |
java.lang.String |
getUsername()
Get the database username |
boolean |
isConnected()
Returns true if a database connection is active. |
protected boolean |
isKeyInTable(java.lang.String tableName,
ResultProducer rp,
java.lang.Object[] key)
Executes a database query to see whether a result for the supplied key is already in the database. |
void |
putResultInTable(java.lang.String tableName,
ResultProducer rp,
java.lang.Object[] key,
java.lang.Object[] result)
Executes a database query to insert a result for the supplied key into the database. |
private java.lang.String |
safeDoubleToString(java.lang.Double number)
Inserts a + if the double is in scientific notation. |
void |
setDatabaseURL(java.lang.String newDatabaseURL)
Set the value of DatabaseURL. |
void |
setPassword(java.lang.String password)
Set the database password |
void |
setUsername(java.lang.String username)
Set the database username |
boolean |
tableExists(java.lang.String tableName)
Checks that a given table exists. |
(package private) int |
translateDBColumnType(java.lang.String type)
translates the column data type string to an integer value that indicates which data type / get()-Method to use in order to retrieve values from the database (see DatabaseUtils.Properties, InstanceQuery()) |
static java.lang.String |
typeName(int type)
Returns the name associated with a SQL type. |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
public static final java.lang.String EXP_INDEX_TABLE
public static final java.lang.String EXP_TYPE_COL
public static final java.lang.String EXP_SETUP_COL
public static final java.lang.String EXP_RESULT_COL
public static final java.lang.String EXP_RESULT_PREFIX
protected static java.lang.String PROPERTY_FILE
protected static java.util.Vector DRIVERS
protected static java.util.Properties PROPERTIES
public static final int STRING
public static final int BOOL
public static final int DOUBLE
public static final int BYTE
public static final int SHORT
public static final int INTEGER
public static final int LONG
public static final int FLOAT
public static final int DATE
protected java.lang.String m_DatabaseURL
protected java.sql.PreparedStatement m_PreparedStatement
protected java.sql.Connection m_Connection
protected boolean m_Debug
protected java.lang.String m_userName
protected java.lang.String m_password
protected java.lang.String m_stringType
protected java.lang.String m_intType
protected java.lang.String m_doubleType
protected boolean m_checkForUpperCaseNames
protected boolean m_setAutoCommit
protected boolean m_createIndex
Constructor Detail |
public DatabaseUtils() throws java.lang.Exception
java.lang.Exception
- if an error occursMethod Detail |
protected java.lang.String attributeCaseFix(java.lang.String columnName)
public void setUsername(java.lang.String username)
username
- Username for Database.public java.lang.String getUsername()
public void setPassword(java.lang.String password)
password
- Password for Database.public java.lang.String getPassword()
int translateDBColumnType(java.lang.String type)
type
- the column type as retrieved with java.sql.MetaData.getColumnTypeName(int)
public static java.lang.String arrayToString(java.lang.Object[] array)
array
- the array of objects
public static java.lang.String typeName(int type)
type
- the SQL type
public java.lang.String databaseURLTipText()
public java.lang.String getDatabaseURL()
public void setDatabaseURL(java.lang.String newDatabaseURL)
newDatabaseURL
- Value to assign to DatabaseURL.public void connectToDatabase() throws java.lang.Exception
java.lang.Exception
- if an error occurspublic void disconnectFromDatabase() throws java.lang.Exception
java.lang.Exception
- if an error occurspublic boolean isConnected()
public boolean execute(java.lang.String query) throws java.sql.SQLException
query
- the SQL query
java.sql.SQLException
- if an error occurspublic java.sql.ResultSet getResultSet() throws java.sql.SQLException
java.sql.SQLException
- if an error occurspublic boolean tableExists(java.lang.String tableName) throws java.lang.Exception
tableName
- the name of the table to look for.
java.lang.Exception
- if an error occurs.protected boolean isKeyInTable(java.lang.String tableName, ResultProducer rp, java.lang.Object[] key) throws java.lang.Exception
tableName
- the name of the table to search for the key inrp
- the ResultProducer who will generate the result if requiredkey
- the key for the result
java.lang.Exception
- if an error occurspublic java.lang.Object[] getResultFromTable(java.lang.String tableName, ResultProducer rp, java.lang.Object[] key) throws java.lang.Exception
tableName
- the name of the table where the result is storedrp
- the ResultProducer who will generate the result if requiredkey
- the key for the result
java.lang.Exception
- if an error occurspublic void putResultInTable(java.lang.String tableName, ResultProducer rp, java.lang.Object[] key, java.lang.Object[] result) throws java.lang.Exception
tableName
- the name of the table where the result is storedrp
- the ResultProducer who will generate the result if requiredkey
- the key for the resultresult
- the result to store
java.lang.Exception
- if an error occursprivate java.lang.String safeDoubleToString(java.lang.Double number)
public boolean experimentIndexExists() throws java.lang.Exception
java.lang.Exception
- if an error occurspublic void createExperimentIndex() throws java.lang.Exception
java.lang.Exception
- if an error occurs.public java.lang.String createExperimentIndexEntry(ResultProducer rp) throws java.lang.Exception
rp
- the ResultProducer generating the results
java.lang.Exception
- if an error occurs.public java.lang.String getResultsTableName(ResultProducer rp) throws java.lang.Exception
rp
- the ResultProducer
java.lang.Exception
- if an error occurspublic java.lang.String createResultsTable(ResultProducer rp, java.lang.String tableName) throws java.lang.Exception
rp
- the ResultProducer generating the resultstableName
- the name of the resultsTable
java.lang.Exception
- if an error occurs.
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |