public abstract class AbstractDatabaseTopicMap extends TopicMap
Modifier and Type | Class and Description |
---|---|
(package private) class |
AbstractDatabaseTopicMap.QueryQueue |
Modifier and Type | Field and Description |
---|---|
protected java.sql.Connection |
connection
The default stored connection
|
private java.lang.Object |
connectionParams |
protected java.lang.String |
databaseFlavour
The database flavor.
|
private java.lang.String |
dbConnectionString |
private java.lang.String |
dbDriver |
private java.lang.String |
dbPassword |
private java.lang.String |
dbUser |
protected boolean |
isDBReadOnly
Note that this is different than topic map read only property.
|
private int |
queryCounter |
private java.lang.Object |
queryLock |
protected boolean |
unconnected |
private AbstractDatabaseTopicMap.QueryQueue |
updateQueue |
consistencyCheck, consistencyCheckWhenXTMImport, EDITTIME_SI, isReadOnly, logger, parentTopicMap
Constructor and Description |
---|
AbstractDatabaseTopicMap(java.lang.String dbDriver,
java.lang.String dbConnectionString,
java.lang.String dbUser,
java.lang.String dbPassword,
java.lang.String initScript,
java.lang.Object connectionParams) |
Modifier and Type | Method and Description |
---|---|
void |
close()
Closes the topic map.
|
protected java.lang.String |
collectionToSQL(java.util.Collection<java.lang.String> col)
Turns a collection of strings into sql syntax representing a collection of strings
that can be used with 'in' clauses.
|
void |
commit() |
protected java.sql.Connection |
createConnection(boolean autocommit)
Creates a new database connection using the connection parameters given
to the constructor.
|
protected java.lang.String |
escapeSQL(java.lang.String s)
Escapes a string so that it can be used in an sql query.
|
protected int |
executeCountQuery(java.lang.String query) |
java.util.Collection<java.util.Map<java.lang.String,java.lang.Object>> |
executeQuery(java.lang.String query)
Executes a database query and returns the results as a collection.
|
private java.util.Collection<java.util.Map<java.lang.String,java.lang.Object>> |
executeQuery(java.lang.String query,
java.sql.Connection con) |
boolean |
executeUpdate(java.lang.String query) |
protected java.sql.Connection |
getConnection()
Gets the connection used with database queries.
|
java.lang.Object |
getConnectionParams()
A connection parameters object may be stored in the database topic map.
|
java.lang.String |
getDatabaseFlavour() |
java.lang.String |
getDBConnectionString()
Gets the used jdbc database connection string.
|
java.lang.String |
getDBDriver()
Gets the used jdbc database driver class.
|
java.lang.String |
getDBPassword()
Gets the used database password.
|
java.lang.String |
getDBUser()
Gets the used database user name.
|
java.util.Iterator<java.util.Map<java.lang.String,java.lang.Object>> |
getRowIterator(java.lang.String query,
java.lang.String orderby) |
boolean |
isConnected()
Checks if the database connection is active.
|
boolean |
isReadOnly()
Does the topic map only allow reading or both reading and writing.
|
private void |
logQuery(java.lang.String query) |
protected boolean |
testReadOnly()
Tests if the connection allows modifying the topic map.
|
addTopicMapListener, addTopicMapListeners, checkAssociationConsistency, checkAssociationConsistency, clearTopicMap, clearTopicMapIndexes, copyAssociationIn, copyTopicAssociationsIn, copyTopicCollectionIn, copyTopicIn, createAssociation, createLocator, createLocator, createTopic, createTopic, disableAllListeners, enableAllListeners, escapeXML, exportJTM, exportJTM, exportJTM, exportJTM, exportLTM, exportLTM, exportLTM, exportLTM, exportTopicMap, exportTopicMap, exportXTM, exportXTM, exportXTM, exportXTM, exportXTM10, exportXTM10, exportXTM10, exportXTM20, exportXTM20, forceStop, getAssociations, getAssociationsOfType, getConsistencyCheck, getLogger, getMergingTopics, getNumAssociations, getNumTopics, getParentTopicMap, getRootTopicMap, getStatistics, getTopic, getTopic, getTopicBySubjectLocator, getTopicBySubjectLocator, getTopicMapListeners, getTopics, getTopics, getTopics, getTopicsOfType, getTopicsOfType, getTopicWithBaseName, hlog, importJTM, importJTM, importJTM, importJTM, importJTM, importJTM, importLTM, importLTM, importLTM, importLTM, importLTM, importLTM, importTopicMap, importTopicMap, importTopicMap, importXTM, importXTM, importXTM, importXTM, importXTM, isTopicMapChanged, log, log, log, makeJTMString, makeJTMTopicId, makeLTMString, makeLTMTopicId, makeSubjectIndicator, makeSubjectIndicatorAsLocator, mergeIn, mergeIn, removeTopicMapListener, resetTopicMapChanged, search, setConsistencyCheck, setLogger, setLogTitle, setParentTopicMap, setProgress, setProgressMax, setReadOnly, setTrackDependent, trackingDependent
private int queryCounter
private java.lang.String dbDriver
private java.lang.String dbConnectionString
private java.lang.String dbUser
private java.lang.String dbPassword
private java.lang.Object connectionParams
protected boolean unconnected
protected java.lang.String databaseFlavour
The database flavor. Some operations need to be handled differently with different database vendors. This field is used to store what kind of database is being used. Currently it may have following values
"mysql" - MySQL database "generic" - Any other database presumed to be sufficiently standard compliant
It is set automatically based on the connection string used.
protected boolean isDBReadOnly
protected java.sql.Connection connection
private final java.lang.Object queryLock
private AbstractDatabaseTopicMap.QueryQueue updateQueue
public AbstractDatabaseTopicMap(java.lang.String dbDriver, java.lang.String dbConnectionString, java.lang.String dbUser, java.lang.String dbPassword, java.lang.String initScript, java.lang.Object connectionParams) throws java.sql.SQLException
java.sql.SQLException
public java.lang.String getDBDriver()
public java.lang.String getDBConnectionString()
public java.lang.String getDBUser()
public java.lang.String getDBPassword()
public java.lang.Object getConnectionParams()
public java.lang.String getDatabaseFlavour()
public boolean isReadOnly()
isReadOnly
in class TopicMap
protected boolean testReadOnly()
public boolean isConnected()
isConnected
in class TopicMap
protected java.sql.Connection getConnection()
protected java.sql.Connection createConnection(boolean autocommit)
public void close()
public boolean executeUpdate(java.lang.String query) throws TopicMapException
TopicMapException
public java.util.Collection<java.util.Map<java.lang.String,java.lang.Object>> executeQuery(java.lang.String query) throws TopicMapException
TopicMapException
private java.util.Collection<java.util.Map<java.lang.String,java.lang.Object>> executeQuery(java.lang.String query, java.sql.Connection con) throws TopicMapException
TopicMapException
protected int executeCountQuery(java.lang.String query)
private void logQuery(java.lang.String query)
public java.util.Iterator<java.util.Map<java.lang.String,java.lang.Object>> getRowIterator(java.lang.String query, java.lang.String orderby)
public void commit() throws java.sql.SQLException, TopicMapException
java.sql.SQLException
TopicMapException
protected java.lang.String collectionToSQL(java.util.Collection<java.lang.String> col)
protected java.lang.String escapeSQL(java.lang.String s)
Copyright 2004-2015 Wandora Team