Package adams.db.mirrored
Class SQL
- java.lang.Object
-
- adams.core.logging.LoggingObject
-
- adams.db.wrapper.AbstractWrapper<SQLIntf>
-
- adams.db.mirrored.SQL
-
- All Implemented Interfaces:
LoggingSupporter,SizeOfHandler,DatabaseConnectionProvider,DatabaseConnectionUser,SQLIntf,TableInterface,Serializable
public class SQL extends AbstractWrapper<SQLIntf> implements SQLIntf
Allows mirroring to another database.- Author:
- FracPete (fracpete at waikato dot ac dot nz)
- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description protected SQLIntfm_DBthe non-mirrored backend.protected static WrapperManager<SQL>m_TableManagerthe table manager.protected Stringm_Updatingobject for blocking polling/removal of fully processed.-
Fields inherited from class adams.db.wrapper.AbstractWrapper
m_Connection, m_TableName, m_Wrapped
-
Fields inherited from class adams.core.logging.LoggingObject
m_Logger, m_LoggingIsEnabled, m_LoggingLevel
-
Fields inherited from interface adams.db.SQLIntf
FAKE_TABLE_NAME
-
-
Constructor Summary
Constructors Modifier Constructor Description protectedSQL(AbstractDatabaseConnection dbcon, SQLIntf wrapped)Initializes the mirroring.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description booleancolumnExists(String table, String column)Checks that a given column exists.booleandrop(String table)Drops the table.Booleanexecute(String query)Executes a SQL query.ResultSetexecuteGeneratedKeys(String query)Executes a SQL query.booleangetDebug()Returns whether debugging is enabled.intgetMaxColumnNameLength()Returns the maximum length for column names.ResultSetgetResultSet(String query)Return resultset of given query.SimpleResultSetgetSimpleResultSet(String query)Execute the given SQL statement and return ResultSet.static SQLgetSingleton(AbstractDatabaseConnection dbcon, SQLIntf mirror)Returns the singleton of the table.PreparedStatementprepareStatement(String query)Create a Prepared statement with given query.PreparedStatementprepareStatement(String query, boolean returnKeys)Create a Prepared statement with given query.PreparedStatementprepareStatement(Connection conn, String query, boolean returnKeys)Create a Prepared statement with given query.ResultSetselect(String columns, String tables, String where)Do a select on given columns for all data in joined tables, with condition.ResultSetselectDistinct(String columns, String tables, String where)Do a select distinct on given columns for all data in joined tables, with condition.gnu.trove.list.TDoubleListselectDouble(boolean distinct, String column, String tables, String where)Selects all doubles from the specified column.gnu.trove.list.TIntListselectInt(boolean distinct, String column, String tables, String where)Selects all integers from the specified column.gnu.trove.list.TLongListselectLong(boolean distinct, String column, String tables, String where)Selects all longs from the specified column.List<String>selectString(boolean distinct, String column, String tables, String where)Selects all strings from the specified column.List<String[]>selectStrings(boolean distinct, String[] columns, String tables, String where)Selects all strings from the specified columns.voidsetDebug(boolean value)Sets whether debugging is enabled, outputs more on the console.booleantableExists(String table)Checks that a given table exists.booleantruncate(String table)Empty table.intupdate(String updateString, String table, String where)Update table.-
Methods inherited from class adams.db.wrapper.AbstractWrapper
getDatabaseConnection, getTableName, getWrapped
-
Methods inherited from class adams.core.logging.LoggingObject
configureLogger, getLogger, getLoggingLevel, initializeLogging, isLoggingEnabled, sizeOf
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface adams.db.DatabaseConnectionProvider
getDatabaseConnection
-
Methods inherited from interface adams.core.logging.LoggingSupporter
getLogger, isLoggingEnabled
-
Methods inherited from interface adams.db.TableInterface
getTableName
-
-
-
-
Field Detail
-
m_TableManager
protected static WrapperManager<SQL> m_TableManager
the table manager.
-
m_DB
protected SQLIntf m_DB
the non-mirrored backend.
-
m_Updating
protected final String m_Updating
object for blocking polling/removal of fully processed.
-
-
Constructor Detail
-
SQL
protected SQL(AbstractDatabaseConnection dbcon, SQLIntf wrapped)
Initializes the mirroring.- Parameters:
dbcon- the database connectionwrapped- the mirror
-
-
Method Detail
-
setDebug
public void setDebug(boolean value)
Sets whether debugging is enabled, outputs more on the console.
-
getDebug
public boolean getDebug()
Returns whether debugging is enabled.
-
tableExists
public boolean tableExists(String table)
Checks that a given table exists.- Specified by:
tableExistsin interfaceSQLIntf- Parameters:
table- the table to look for- Returns:
- true if the table exists.
-
columnExists
public boolean columnExists(String table, String column)
Checks that a given column exists.- Specified by:
columnExistsin interfaceSQLIntf- Parameters:
table- the table to searchcolumn- the column to look for- Returns:
- true if the column exists.
-
getSimpleResultSet
public SimpleResultSet getSimpleResultSet(String query) throws Exception
Execute the given SQL statement and return ResultSet.- Specified by:
getSimpleResultSetin interfaceSQLIntf- Parameters:
query- SQL query String- Returns:
- resulting ResultSet, or null if Error
- Throws:
Exception- if something goes wrong
-
prepareStatement
public PreparedStatement prepareStatement(String query) throws Exception
Create a Prepared statement with given query.- Specified by:
prepareStatementin interfaceSQLIntf- Parameters:
query- the query to execute- Returns:
- PreparedStatement
- Throws:
Exception- if something goes wrong
-
prepareStatement
public PreparedStatement prepareStatement(String query, boolean returnKeys) throws Exception
Create a Prepared statement with given query.- Specified by:
prepareStatementin interfaceSQLIntf- Parameters:
query- the query to executereturnKeys- whether to initialize the statement that it returns the generated keys- Returns:
- PreparedStatement
- Throws:
Exception- if something goes wrong
-
prepareStatement
public PreparedStatement prepareStatement(Connection conn, String query, boolean returnKeys) throws Exception
Create a Prepared statement with given query.- Specified by:
prepareStatementin interfaceSQLIntf- Parameters:
conn- the database connection to usequery- the query to executereturnKeys- whether to initialize the statement that it returns the generated keys- Returns:
- PreparedStatement
- Throws:
Exception- if something goes wrong
-
update
public int update(String updateString, String table, String where) throws Exception
Update table.
-
executeGeneratedKeys
public ResultSet executeGeneratedKeys(String query) throws Exception
Executes a SQL query. Return any Generated Keys Caller is responsible for closing the statement.- Specified by:
executeGeneratedKeysin interfaceSQLIntf- Parameters:
query- the SQL query- Returns:
- Generated keys as a resultset, or null if failure
- Throws:
Exception- if something goes wrong
-
truncate
public boolean truncate(String table)
Empty table.
-
drop
public boolean drop(String table)
Drops the table.
-
select
public ResultSet select(String columns, String tables, String where) throws Exception
Do a select on given columns for all data in joined tables, with condition.
-
selectDistinct
public ResultSet selectDistinct(String columns, String tables, String where) throws Exception
Do a select distinct on given columns for all data in joined tables, with condition.- Specified by:
selectDistinctin interfaceSQLIntf- Parameters:
columns- columns to selecttables- the tables to select fromwhere- condition- Returns:
- resultset of data
- Throws:
Exception- if something goes wrong
-
selectString
public List<String> selectString(boolean distinct, String column, String tables, String where) throws Exception
Selects all strings from the specified column. Can be distinct.- Specified by:
selectStringin interfaceSQLIntf- Parameters:
distinct- whether values in column have to be distinctcolumn- the string column to selecttables- the tables to select from, ignored if nullwhere- condition, can be null- Returns:
- resultset of data
- Throws:
Exception- if something goes wrong
-
selectStrings
public List<String[]> selectStrings(boolean distinct, String[] columns, String tables, String where) throws Exception
Selects all strings from the specified columns. Can be distinct (uses a CONCAT internally for that).- Specified by:
selectStringsin interfaceSQLIntf- Parameters:
distinct- whether values in column have to be distinctcolumns- the string columns to selecttables- the tables to select from, ignored if nullwhere- condition, can be null- Returns:
- resultset of data
- Throws:
Exception- if something goes wrong
-
selectInt
public gnu.trove.list.TIntList selectInt(boolean distinct, String column, String tables, String where) throws ExceptionSelects all integers from the specified column. Can be distinct.- Specified by:
selectIntin interfaceSQLIntf- Parameters:
distinct- whether values in column have to be distinctcolumn- the int column to selecttables- the tables to select from, ignored if nullwhere- condition, can be null- Returns:
- resultset of data
- Throws:
Exception- if something goes wrong
-
selectLong
public gnu.trove.list.TLongList selectLong(boolean distinct, String column, String tables, String where) throws ExceptionDescription copied from interface:SQLIntfSelects all longs from the specified column. Can be distinct.- Specified by:
selectLongin interfaceSQLIntf- Parameters:
distinct- whether values in column have to be distinctcolumn- the long column to selecttables- the tables to select from, ignored if nullwhere- condition, can be null- Returns:
- resultset of data
- Throws:
Exception- if something goes wrong
-
selectDouble
public gnu.trove.list.TDoubleList selectDouble(boolean distinct, String column, String tables, String where) throws ExceptionSelects all doubles from the specified column. Can be distinct.- Specified by:
selectDoublein interfaceSQLIntf- Parameters:
distinct- whether values in column have to be distinctcolumn- the long column to selecttables- the tables to select from, ignored if nullwhere- condition, can be null- Returns:
- resultset of data
- Throws:
Exception- if something goes wrong
-
getResultSet
public ResultSet getResultSet(String query) throws Exception
Return resultset of given query.- Specified by:
getResultSetin interfaceSQLIntf- Parameters:
query- sql query- Returns:
- resulset
- Throws:
Exception- if something goes wrong
-
getMaxColumnNameLength
public int getMaxColumnNameLength() throws SQLExceptionReturns the maximum length for column names. In case the meta-data returns 0,Integer.MAX_VALUEis used instead.- Specified by:
getMaxColumnNameLengthin interfaceSQLIntf- Returns:
- the maximum length
- Throws:
SQLException- if the query fails
-
getSingleton
public static SQL getSingleton(AbstractDatabaseConnection dbcon, SQLIntf mirror)
Returns the singleton of the table.- Parameters:
dbcon- the database connection to get the singleton formirror- the mirror- Returns:
- the singleton
-
-