org.apache.manifoldcf.crawler.connectors.jdbc
Class JDBCConnection

java.lang.Object
  extended by org.apache.manifoldcf.crawler.connectors.jdbc.JDBCConnection

public class JDBCConnection
extends java.lang.Object

This object describes a connection to a particular JDBC instance.


Nested Class Summary
protected  class JDBCConnection.ExecuteOperationThread
           
protected  class JDBCConnection.JDBCPSResultSet
           
protected  class JDBCConnection.JDBCResultSet
           
protected static class JDBCConnection.NextResultRowThread
           
protected  class JDBCConnection.PreparedStatementQueryThread
           
protected  class JDBCConnection.StatementQueryThread
           
protected  class JDBCConnection.TestConnectionThread
           
 
Field Summary
static java.lang.String _rcsid
           
protected  java.lang.String databaseName
           
protected  java.lang.String host
           
protected  java.lang.String jdbcProvider
           
protected  java.lang.String password
           
protected  java.lang.String userName
           
 
Constructor Summary
JDBCConnection(java.lang.String jdbcProvider, java.lang.String host, java.lang.String databaseName, java.lang.String userName, java.lang.String password)
          Constructor.
 
Method Summary
protected static void cleanupParameters(java.util.ArrayList data)
          Clean up parameters after query has been triggered.
protected static void closePS(java.sql.PreparedStatement ps)
           
protected static void closeResultset(java.sql.ResultSet rs)
           
protected static void closeStmt(java.sql.Statement stmt)
           
protected static org.apache.manifoldcf.core.interfaces.IResultSet execute(java.sql.Connection connection, java.lang.String query, java.util.ArrayList params, boolean bResults, int maxResults)
          Run a query.
 void executeOperation(java.lang.String query, java.util.ArrayList params)
          Execute operation.
 IDynamicResultSet executeUncachedQuery(java.lang.String query, java.util.ArrayList params, int maxResults)
          Execute query.
protected static int findColumn(java.sql.ResultSet rs, java.lang.String name)
           
protected static java.sql.Blob getBLOB(java.sql.ResultSet rs, int col)
           
protected static java.sql.Clob getCLOB(java.sql.ResultSet rs, int col)
           
protected static org.apache.manifoldcf.core.interfaces.IResultSet getData(java.sql.ResultSet rs, int maxResults)
           
protected static java.lang.Object getObject(java.sql.ResultSet rs, java.sql.ResultSetMetaData rsmd, int col)
           
protected static boolean isBinaryData(java.sql.ResultSetMetaData rsmd, int col)
           
protected static boolean isBLOB(java.sql.ResultSetMetaData rsmd, int col)
           
protected static boolean isCLOB(java.sql.ResultSetMetaData rsmd, int col)
           
protected static void loadPS(java.sql.PreparedStatement ps, java.util.ArrayList data)
           
protected static java.lang.String[] readColumnNames(java.sql.ResultSetMetaData rsmd)
           
protected static org.apache.manifoldcf.core.interfaces.IResultRow readNextResultRow(java.sql.ResultSet rs, java.sql.ResultSetMetaData rsmd, java.lang.String[] resultCols)
           
protected static org.apache.manifoldcf.core.interfaces.IResultRow readNextResultRowViaThread(java.sql.ResultSet rs, java.sql.ResultSetMetaData rsmd, java.lang.String[] resultCols)
           
protected static org.apache.manifoldcf.core.interfaces.IResultRow readResultRow(java.sql.ResultSet rs, java.sql.ResultSetMetaData rsmd, java.lang.String[] resultCols)
          Read the current row from the resultset
 void testConnection()
          Test connection.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

_rcsid

public static final java.lang.String _rcsid
See Also:
Constant Field Values

jdbcProvider

protected java.lang.String jdbcProvider

host

protected java.lang.String host

databaseName

protected java.lang.String databaseName

userName

protected java.lang.String userName

password

protected java.lang.String password
Constructor Detail

JDBCConnection

public JDBCConnection(java.lang.String jdbcProvider,
                      java.lang.String host,
                      java.lang.String databaseName,
                      java.lang.String userName,
                      java.lang.String password)
Constructor.

Method Detail

readNextResultRowViaThread

protected static org.apache.manifoldcf.core.interfaces.IResultRow readNextResultRowViaThread(java.sql.ResultSet rs,
                                                                                             java.sql.ResultSetMetaData rsmd,
                                                                                             java.lang.String[] resultCols)
                                                                                      throws org.apache.manifoldcf.core.interfaces.ManifoldCFException,
                                                                                             org.apache.manifoldcf.agents.interfaces.ServiceInterruption
Throws:
org.apache.manifoldcf.core.interfaces.ManifoldCFException
org.apache.manifoldcf.agents.interfaces.ServiceInterruption

readNextResultRow

protected static org.apache.manifoldcf.core.interfaces.IResultRow readNextResultRow(java.sql.ResultSet rs,
                                                                                    java.sql.ResultSetMetaData rsmd,
                                                                                    java.lang.String[] resultCols)
                                                                             throws org.apache.manifoldcf.core.interfaces.ManifoldCFException,
                                                                                    org.apache.manifoldcf.agents.interfaces.ServiceInterruption
Throws:
org.apache.manifoldcf.core.interfaces.ManifoldCFException
org.apache.manifoldcf.agents.interfaces.ServiceInterruption

closeResultset

protected static void closeResultset(java.sql.ResultSet rs)
                              throws org.apache.manifoldcf.core.interfaces.ManifoldCFException,
                                     org.apache.manifoldcf.agents.interfaces.ServiceInterruption
Throws:
org.apache.manifoldcf.core.interfaces.ManifoldCFException
org.apache.manifoldcf.agents.interfaces.ServiceInterruption

closeStmt

protected static void closeStmt(java.sql.Statement stmt)
                         throws org.apache.manifoldcf.core.interfaces.ManifoldCFException,
                                org.apache.manifoldcf.agents.interfaces.ServiceInterruption
Throws:
org.apache.manifoldcf.core.interfaces.ManifoldCFException
org.apache.manifoldcf.agents.interfaces.ServiceInterruption

closePS

protected static void closePS(java.sql.PreparedStatement ps)
                       throws org.apache.manifoldcf.core.interfaces.ManifoldCFException,
                              org.apache.manifoldcf.agents.interfaces.ServiceInterruption
Throws:
org.apache.manifoldcf.core.interfaces.ManifoldCFException
org.apache.manifoldcf.agents.interfaces.ServiceInterruption

testConnection

public void testConnection()
                    throws org.apache.manifoldcf.core.interfaces.ManifoldCFException,
                           org.apache.manifoldcf.agents.interfaces.ServiceInterruption
Test connection.

Throws:
org.apache.manifoldcf.core.interfaces.ManifoldCFException
org.apache.manifoldcf.agents.interfaces.ServiceInterruption

executeUncachedQuery

public IDynamicResultSet executeUncachedQuery(java.lang.String query,
                                              java.util.ArrayList params,
                                              int maxResults)
                                       throws org.apache.manifoldcf.core.interfaces.ManifoldCFException,
                                              org.apache.manifoldcf.agents.interfaces.ServiceInterruption
Execute query.

Throws:
org.apache.manifoldcf.core.interfaces.ManifoldCFException
org.apache.manifoldcf.agents.interfaces.ServiceInterruption

executeOperation

public void executeOperation(java.lang.String query,
                             java.util.ArrayList params)
                      throws org.apache.manifoldcf.core.interfaces.ManifoldCFException,
                             org.apache.manifoldcf.agents.interfaces.ServiceInterruption
Execute operation.

Throws:
org.apache.manifoldcf.core.interfaces.ManifoldCFException
org.apache.manifoldcf.agents.interfaces.ServiceInterruption

execute

protected static org.apache.manifoldcf.core.interfaces.IResultSet execute(java.sql.Connection connection,
                                                                          java.lang.String query,
                                                                          java.util.ArrayList params,
                                                                          boolean bResults,
                                                                          int maxResults)
                                                                   throws org.apache.manifoldcf.core.interfaces.ManifoldCFException,
                                                                          org.apache.manifoldcf.agents.interfaces.ServiceInterruption
Run a query. No caching is involved at all at this level.

Parameters:
query - String the query string
maxResults - is the maximum number of results to load: -1 if all
params - ArrayList if params !=null, use preparedStatement
Throws:
org.apache.manifoldcf.core.interfaces.ManifoldCFException
org.apache.manifoldcf.agents.interfaces.ServiceInterruption

readResultRow

protected static org.apache.manifoldcf.core.interfaces.IResultRow readResultRow(java.sql.ResultSet rs,
                                                                                java.sql.ResultSetMetaData rsmd,
                                                                                java.lang.String[] resultCols)
                                                                         throws org.apache.manifoldcf.core.interfaces.ManifoldCFException,
                                                                                org.apache.manifoldcf.agents.interfaces.ServiceInterruption
Read the current row from the resultset

Throws:
org.apache.manifoldcf.core.interfaces.ManifoldCFException
org.apache.manifoldcf.agents.interfaces.ServiceInterruption

readColumnNames

protected static java.lang.String[] readColumnNames(java.sql.ResultSetMetaData rsmd)
                                             throws org.apache.manifoldcf.core.interfaces.ManifoldCFException,
                                                    org.apache.manifoldcf.agents.interfaces.ServiceInterruption
Throws:
org.apache.manifoldcf.core.interfaces.ManifoldCFException
org.apache.manifoldcf.agents.interfaces.ServiceInterruption

getData

protected static org.apache.manifoldcf.core.interfaces.IResultSet getData(java.sql.ResultSet rs,
                                                                          int maxResults)
                                                                   throws org.apache.manifoldcf.core.interfaces.ManifoldCFException,
                                                                          org.apache.manifoldcf.agents.interfaces.ServiceInterruption
Throws:
org.apache.manifoldcf.core.interfaces.ManifoldCFException
org.apache.manifoldcf.agents.interfaces.ServiceInterruption

loadPS

protected static void loadPS(java.sql.PreparedStatement ps,
                             java.util.ArrayList data)
                      throws java.sql.SQLException,
                             org.apache.manifoldcf.core.interfaces.ManifoldCFException
Throws:
java.sql.SQLException
org.apache.manifoldcf.core.interfaces.ManifoldCFException

cleanupParameters

protected static void cleanupParameters(java.util.ArrayList data)
                                 throws org.apache.manifoldcf.core.interfaces.ManifoldCFException
Clean up parameters after query has been triggered.

Throws:
org.apache.manifoldcf.core.interfaces.ManifoldCFException

findColumn

protected static int findColumn(java.sql.ResultSet rs,
                                java.lang.String name)
                         throws org.apache.manifoldcf.core.interfaces.ManifoldCFException,
                                org.apache.manifoldcf.agents.interfaces.ServiceInterruption
Throws:
org.apache.manifoldcf.core.interfaces.ManifoldCFException
org.apache.manifoldcf.agents.interfaces.ServiceInterruption

getBLOB

protected static java.sql.Blob getBLOB(java.sql.ResultSet rs,
                                       int col)
                                throws org.apache.manifoldcf.core.interfaces.ManifoldCFException,
                                       org.apache.manifoldcf.agents.interfaces.ServiceInterruption
Throws:
org.apache.manifoldcf.core.interfaces.ManifoldCFException
org.apache.manifoldcf.agents.interfaces.ServiceInterruption

getCLOB

protected static java.sql.Clob getCLOB(java.sql.ResultSet rs,
                                       int col)
                                throws org.apache.manifoldcf.core.interfaces.ManifoldCFException,
                                       org.apache.manifoldcf.agents.interfaces.ServiceInterruption
Throws:
org.apache.manifoldcf.core.interfaces.ManifoldCFException
org.apache.manifoldcf.agents.interfaces.ServiceInterruption

isBLOB

protected static boolean isBLOB(java.sql.ResultSetMetaData rsmd,
                                int col)
                         throws org.apache.manifoldcf.core.interfaces.ManifoldCFException,
                                org.apache.manifoldcf.agents.interfaces.ServiceInterruption
Throws:
org.apache.manifoldcf.core.interfaces.ManifoldCFException
org.apache.manifoldcf.agents.interfaces.ServiceInterruption

isBinaryData

protected static boolean isBinaryData(java.sql.ResultSetMetaData rsmd,
                                      int col)
                               throws org.apache.manifoldcf.core.interfaces.ManifoldCFException,
                                      org.apache.manifoldcf.agents.interfaces.ServiceInterruption
Throws:
org.apache.manifoldcf.core.interfaces.ManifoldCFException
org.apache.manifoldcf.agents.interfaces.ServiceInterruption

isCLOB

protected static boolean isCLOB(java.sql.ResultSetMetaData rsmd,
                                int col)
                         throws org.apache.manifoldcf.core.interfaces.ManifoldCFException,
                                org.apache.manifoldcf.agents.interfaces.ServiceInterruption
Throws:
org.apache.manifoldcf.core.interfaces.ManifoldCFException
org.apache.manifoldcf.agents.interfaces.ServiceInterruption

getObject

protected static java.lang.Object getObject(java.sql.ResultSet rs,
                                            java.sql.ResultSetMetaData rsmd,
                                            int col)
                                     throws org.apache.manifoldcf.core.interfaces.ManifoldCFException,
                                            org.apache.manifoldcf.agents.interfaces.ServiceInterruption
Throws:
org.apache.manifoldcf.core.interfaces.ManifoldCFException
org.apache.manifoldcf.agents.interfaces.ServiceInterruption