|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.sandev.tools.JDBC.THD_JDBCPersister
A Persister implementation that communicates with a database via JDBC.
AUTOGENERATED FILE, DO NOT EDIT DIRECTLY.
source: declared in build
generator: org.sandev.generator.JDBCPersisterGenerator
time: Dec 2, 2005 6:38:59 PM
This implementation relies on the container to provide a DataSource
via JNDI, and to provide connection pooling. If no UniqueIDManager is
specified in the DataManager, then a TableKeyCounter is used.
| Field Summary | |
protected org.sandev.basics.DataManager.UniqueIDManager |
counter
We keep track of what the next primary key for each table should be using an in memory counter. |
protected org.sandev.basics.DataManager.DataManagerNode |
dm
Our back reference to the DataManagerNode. |
protected java.sql.Driver |
driver
Local Driver reference used by getDirectConnection |
protected org.sandev.basics.util.InstanceClassEnumerator |
instClassEnum
Our local InstanceClassEnumerator used for instance lookup. |
protected java.util.Properties |
properties
Local Properties reference used by getDirectConnection |
| Fields inherited from interface org.sandev.basics.DataManager.Persister |
TEMPIDTHRESHOLD |
| Constructor Summary | |
THD_JDBCPersister()
|
|
| Method Summary | |
protected java.lang.String |
cleanDBExceptionText(java.sql.SQLException e,
org.sandev.basics.structs.SandUpdateMessage sum)
Utility method for converting the SQLException we got back into something that makes more sense to an end user. |
static void |
closeConnection(java.sql.Connection conn)
Convenience method for closing a database connection. |
static void |
closeConnection(java.sql.Statement stmt,
java.sql.Connection conn)
Convenience method for closing a statement and a connection. |
protected void |
debugDumpContext(javax.naming.InitialContext ctx)
Dump the contents of the given InitialContext if possible. |
protected org.sandev.basics.structs.AggregateUpdate |
doAggregateUpdate(org.sandev.basics.structs.AggregateUpdate msg)
Process all the updates within a single transaction. |
protected org.sandev.basics.structs.SandUpdateMessage |
doCoreUpdate(org.sandev.basics.structs.SandUpdateMessage msg,
java.sql.Connection conn)
thin wrapper for THD_UpdateProcessor.doUpdate |
protected org.sandev.basics.sandmessages.DataImportExport |
doExport(org.sandev.basics.sandmessages.DataImportExport msg)
Export workhorse for doImportExport. |
protected org.sandev.basics.sandmessages.DataImportExport |
doImport(org.sandev.basics.sandmessages.DataImportExport msg)
Import workhorse for doImportExport. |
protected org.sandev.basics.sandmessages.DataImportExport |
doImportExport(org.sandev.basics.sandmessages.DataImportExport msg)
Deal with the import or export request and return the results. |
protected org.sandev.basics.structs.SandCollectionMessage |
doQuery(org.sandev.basics.structs.SandQueryMessage msg)
thin wrapper for THD_QueryProcessor.doQuery |
protected org.sandev.basics.structs.SandUpdateMessage |
doUpdate(org.sandev.basics.structs.SandUpdateMessage msg)
Process the update. |
java.sql.Connection |
getConnection()
Non verbose callthrough to getConnection. |
java.sql.Connection |
getConnection(boolean verbose)
Returns a database connection for this Persister. |
org.sandev.basics.DataManager.UniqueIDManager |
getCounter()
accessor for counter |
org.sandev.basics.DataManager.DataManagerNode |
getDataManager()
accessor for dm |
static java.lang.String |
getDescription(org.sandev.basics.structs.SandPersistMessage spm)
Return a description of this message suitable for logging. |
java.sql.Connection |
getDirectConnection(java.lang.String dsname,
boolean verbose)
Retrieve a Connection through the specified driver, url, and access info. |
org.sandev.basics.structs.SandPersistMessage |
getInstance(java.lang.String classname,
long id,
org.sandev.basics.util.AuthUser user)
Convert the classname id combination into an equivalent query message and call |
protected org.sandev.basics.util.InstanceClassEnumerator |
getInstClassEnum()
Initializing accessor for instClassEnum |
java.sql.Connection |
getJNDILookupConnection(java.lang.String dsname,
boolean verbose)
Retrieve a Connection by finding the DataSource JNDI binding |
protected long |
getMessageID(org.sandev.basics.structs.SandUpdateMessage sum)
Gets the instance out of the given update message, downcasts it to a SandPeristMessage and returns its uniqueID. |
protected void |
info(java.lang.String text)
Shorthand method for logging informational text. |
void |
init(org.sandev.basics.DataManager.DataManagerNode datamgr)
Setup for work. |
protected void |
initDriver(java.lang.String drivername)
Initializes our driver reference given a driver class name |
protected void |
initProperties(java.lang.String username,
java.lang.String password)
Initialized our properties with the username and password given. |
org.sandev.basics.structs.SandMessage |
processMessage(org.sandev.basics.structs.SandMessage msg)
Handle AggregateUpdate, SandUpdateMessage or SandQueryMessage. |
void |
setCounter(org.sandev.basics.DataManager.UniqueIDManager mgr)
mutator for counter |
void |
setDataManager(org.sandev.basics.DataManager.DataManagerNode dm)
mutator for dm |
protected void |
setMessageID(org.sandev.basics.structs.SandUpdateMessage sum,
long val)
Gets the instance out of the given update message, downcasts it to a SandPeristMessage and sets its uniqueID. |
static void |
verifyInitialData(org.sandev.basics.DataManager.DataManagerNode dm,
java.sql.Connection conn)
Get our initial data from the configuration and make sure that everything exists as specified. |
static void |
wrappedLog(org.sandev.basics.nodecommon.Logger logger,
int loglevel,
java.lang.String msg)
Wraps the logger call to throw a SQLException instead. |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
protected org.sandev.basics.DataManager.DataManagerNode dm
protected org.sandev.basics.DataManager.UniqueIDManager counter
protected org.sandev.basics.util.InstanceClassEnumerator instClassEnum
protected java.sql.Driver driver
protected java.util.Properties properties
| Constructor Detail |
public THD_JDBCPersister()
| Method Detail |
public org.sandev.basics.DataManager.DataManagerNode getDataManager()
public void setDataManager(org.sandev.basics.DataManager.DataManagerNode dm)
public org.sandev.basics.DataManager.UniqueIDManager getCounter()
public void setCounter(org.sandev.basics.DataManager.UniqueIDManager mgr)
public void init(org.sandev.basics.DataManager.DataManagerNode datamgr)
throws org.sandev.basics.DataManager.PersisterException
init in interface org.sandev.basics.DataManager.Persisterorg.sandev.basics.DataManager.PersisterException
public org.sandev.basics.structs.SandMessage processMessage(org.sandev.basics.structs.SandMessage msg)
throws org.sandev.basics.DataManager.PersisterException
processMessage in interface org.sandev.basics.DataManager.Persisterorg.sandev.basics.DataManager.PersisterExceptionprotected org.sandev.basics.util.InstanceClassEnumerator getInstClassEnum()
public org.sandev.basics.structs.SandPersistMessage getInstance(java.lang.String classname,
long id,
org.sandev.basics.util.AuthUser user)
throws org.sandev.basics.structs.SandException
getInstance in interface org.sandev.basics.util.IDLookuporg.sandev.basics.structs.SandException
public static void wrappedLog(org.sandev.basics.nodecommon.Logger logger,
int loglevel,
java.lang.String msg)
throws java.sql.SQLException
java.sql.SQLException
public static void verifyInitialData(org.sandev.basics.DataManager.DataManagerNode dm,
java.sql.Connection conn)
throws java.sql.SQLException
java.sql.SQLExceptionpublic static java.lang.String getDescription(org.sandev.basics.structs.SandPersistMessage spm)
protected long getMessageID(org.sandev.basics.structs.SandUpdateMessage sum)
protected void setMessageID(org.sandev.basics.structs.SandUpdateMessage sum,
long val)
protected org.sandev.basics.structs.AggregateUpdate doAggregateUpdate(org.sandev.basics.structs.AggregateUpdate msg)
throws org.sandev.basics.DataManager.PersisterException
org.sandev.basics.DataManager.PersisterException
protected org.sandev.basics.structs.SandUpdateMessage doUpdate(org.sandev.basics.structs.SandUpdateMessage msg)
throws org.sandev.basics.DataManager.PersisterException
org.sandev.basics.DataManager.PersisterException
protected org.sandev.basics.structs.SandUpdateMessage doCoreUpdate(org.sandev.basics.structs.SandUpdateMessage msg,
java.sql.Connection conn)
throws java.sql.SQLException
java.sql.SQLException
protected org.sandev.basics.structs.SandCollectionMessage doQuery(org.sandev.basics.structs.SandQueryMessage msg)
throws org.sandev.basics.DataManager.PersisterException
org.sandev.basics.DataManager.PersisterException
protected org.sandev.basics.sandmessages.DataImportExport doImportExport(org.sandev.basics.sandmessages.DataImportExport msg)
throws org.sandev.basics.DataManager.PersisterException
org.sandev.basics.DataManager.PersisterException
protected org.sandev.basics.sandmessages.DataImportExport doExport(org.sandev.basics.sandmessages.DataImportExport msg)
throws org.sandev.basics.DataManager.PersisterException
org.sandev.basics.DataManager.PersisterException
protected org.sandev.basics.sandmessages.DataImportExport doImport(org.sandev.basics.sandmessages.DataImportExport msg)
throws org.sandev.basics.DataManager.PersisterException
org.sandev.basics.DataManager.PersisterException
public java.sql.Connection getConnection()
throws org.sandev.basics.DataManager.PersisterException
org.sandev.basics.DataManager.PersisterException
public java.sql.Connection getConnection(boolean verbose)
throws org.sandev.basics.DataManager.PersisterException
org.sandev.basics.DataManager.PersisterException
protected void initDriver(java.lang.String drivername)
throws org.sandev.basics.DataManager.PersisterException
org.sandev.basics.DataManager.PersisterException
protected void initProperties(java.lang.String username,
java.lang.String password)
throws org.sandev.basics.DataManager.PersisterException
org.sandev.basics.DataManager.PersisterException
public java.sql.Connection getDirectConnection(java.lang.String dsname,
boolean verbose)
throws org.sandev.basics.DataManager.PersisterException
org.sandev.basics.DataManager.PersisterException
public java.sql.Connection getJNDILookupConnection(java.lang.String dsname,
boolean verbose)
throws org.sandev.basics.DataManager.PersisterException
org.sandev.basics.DataManager.PersisterExceptionprotected void debugDumpContext(javax.naming.InitialContext ctx)
public static void closeConnection(java.sql.Statement stmt,
java.sql.Connection conn)
throws org.sandev.basics.DataManager.PersisterException
org.sandev.basics.DataManager.PersisterException
public static void closeConnection(java.sql.Connection conn)
throws org.sandev.basics.DataManager.PersisterException
org.sandev.basics.DataManager.PersisterException
protected java.lang.String cleanDBExceptionText(java.sql.SQLException e,
org.sandev.basics.structs.SandUpdateMessage sum)
The approach here is to use the leverage the struct declarations to produce better and more consistent error messages. The source text for output is in the DataManagerNode constants.
Sample source error messages for illustration purposes:
protected void info(java.lang.String text)
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||