| java.lang.Object org.jivesoftware.database.DbConnectionManager
DbConnectionManager | public class DbConnectionManager (Code) | | Central manager of database connections. All methods are static so that they
can be easily accessed throughout the classes in the database package.
This class also provides a set of utility methods that abstract out
operations that may not work on all databases such as setting the max number
or rows that a query should return.
author: Jive Software See Also: ConnectionProvider |
Inner Class :public static enum DatabaseType | |
Method Summary | |
public static void | closeConnection(ResultSet rs, Statement stmt, Connection con) Closes a result set, statement and database connection (returning the connection to
the connection pool). | public static void | closeConnection(Statement stmt, Connection con) Closes a statement and database connection (returning the connection to
the connection pool). | public static void | closeConnection(Connection con) Closes a database connection (returning the connection to the connection pool). | public static void | closeResultSet(ResultSet rs) Closes a result set. | public static void | closeStatement(Statement stmt) Closes a statement. | public static void | closeTransactionConnection(PreparedStatement pstmt, Connection con, boolean abortTransaction) Closes a PreparedStatement and Connection. | public static void | closeTransactionConnection(Connection con, boolean abortTransaction) Closes a Connection. | public static PreparedStatement | createScrollablePreparedStatement(Connection con, String sql) Creates a scroll insensitive PreparedStatement if the JDBC driver supports it, or a normal
PreparedStatement otherwise.
Parameters: con - the database connection. Parameters: sql - the SQL to create the PreparedStatement with. | public static Statement | createScrollableStatement(Connection con) Creates a scroll insensitive Statement if the JDBC driver supports it, or a normal
Statement otherwise.
Parameters: con - the database connection. | public static void | destroyConnectionProvider() Destroys the currennt connection provider. | public static Connection | getConnection() Returns a database connection from the currently active connection
provider. | public static ConnectionProvider | getConnectionProvider() Returns the current connection provider. | public static DatabaseType | getDatabaseType() Returns the database type. | public static String | getLargeTextField(ResultSet rs, int columnIndex) Retrives a large text column from a result set, automatically performing
streaming if the JDBC driver requires it. | public static SchemaManager | getSchemaManager() Returns a SchemaManager instance, which can be used to manage the database
schema information for Openfire and plugins. | public static Connection | getTransactionConnection() Returns a Connection from the currently active connection provider that
is ready to participate in transactions (auto commit is set to false). | public static boolean | isBatchUpdatesSupported() | public static boolean | isEmbeddedDB() | public static boolean | isFetchSizeSupported() | public static boolean | isMaxRowsSupported() | public static boolean | isProfilingEnabled() Returns true if connection profiling is turned on. | public static boolean | isScrollResultsSupported() | public static boolean | isStreamTextRequired() | public static boolean | isSubqueriesSupported() | public static boolean | isTransactionsSupported() | public static void | scrollResultSet(ResultSet rs, int rowNumber) Scrolls forward in a result set the specified number of rows. | public static void | setConnectionProvider(ConnectionProvider provider) Sets the connection provider. | public static void | setFetchSize(ResultSet rs, int fetchSize) Sets the number of rows that the JDBC driver should buffer at a time. | public static void | setLargeTextField(PreparedStatement pstmt, int parameterIndex, String value) Sets a large text column in a result set, automatically performing
streaming if the JDBC driver requires it. | public static void | setMaxRows(Statement stmt, int maxRows) Sets the max number of rows that should be returned from executing a
statement. | public static void | setProfilingEnabled(boolean enable) Turns connection profiling on or off. |
closeConnection | public static void closeConnection(ResultSet rs, Statement stmt, Connection con)(Code) | | Closes a result set, statement and database connection (returning the connection to
the connection pool). This method should be called within the finally section of
your database logic, as in the following example:
Connection con = null;
PrepatedStatment pstmt = null;
ResultSet rs = null;
try {
con = ConnectionManager.getConnection();
pstmt = con.prepareStatement("select * from blah");
rs = psmt.executeQuery();
....
}
catch (SQLException sqle) {
Log.error(sqle);
}
finally {
ConnectionManager.closeConnection(rs, pstmt, con);
}
Parameters: rs - the result set. Parameters: stmt - the statement. Parameters: con - the connection. |
closeConnection | public static void closeConnection(Statement stmt, Connection con)(Code) | | Closes a statement and database connection (returning the connection to
the connection pool). This method should be called within the finally section of
your database logic, as in the following example:
Connection con = null;
PrepatedStatment pstmt = null;
try {
con = ConnectionManager.getConnection();
pstmt = con.prepareStatement("select * from blah");
....
}
catch (SQLException sqle) {
Log.error(sqle);
}
finally {
DbConnectionManager.closeConnection(pstmt, con);
}
Parameters: stmt - the statement. Parameters: con - the connection. |
closeConnection | public static void closeConnection(Connection con)(Code) | | Closes a database connection (returning the connection to the connection pool). Any
statements associated with the connection should be closed before calling this method.
This method should be called within the finally section of your database logic, as
in the following example:
Connection con = null;
try {
con = ConnectionManager.getConnection();
....
}
catch (SQLException sqle) {
Log.error(sqle);
}
finally {
DbConnectionManager.closeConnection(con);
}
Parameters: con - the connection. |
closeResultSet | public static void closeResultSet(ResultSet rs)(Code) | | Closes a result set. This method should be called within the finally section of
your database logic, as in the following example:
public void doSomething(Connection con) {
ResultSet rs = null;
PreparedStatement pstmt = null;
try {
pstmt = con.prepareStatement("select * from blah");
rs = pstmt.executeQuery();
....
}
catch (SQLException sqle) {
Log.error(sqle);
}
finally {
ConnectionManager.closeResultSet(rs);
ConnectionManager.closePreparedStatement(pstmt);
}
}
Parameters: rs - the result set to close. |
closeStatement | public static void closeStatement(Statement stmt)(Code) | | Closes a statement. This method should be called within the finally section of
your database logic, as in the following example:
public void doSomething(Connection con) {
PreparedStatement pstmt = null;
try {
pstmt = con.prepareStatement("select * from blah");
....
}
catch (SQLException sqle) {
Log.error(sqle);
}
finally {
ConnectionManager.closePreparedStatement(pstmt);
}
}
Parameters: stmt - the statement. |
closeTransactionConnection | public static void closeTransactionConnection(PreparedStatement pstmt, Connection con, boolean abortTransaction)(Code) | | Closes a PreparedStatement and Connection. However, it first rolls back the transaction or
commits it depending on the value of abortTransaction .
Parameters: pstmt - the prepared statement to close. Parameters: con - the connection to close. Parameters: abortTransaction - true if the transaction should be rolled back. |
closeTransactionConnection | public static void closeTransactionConnection(Connection con, boolean abortTransaction)(Code) | | Closes a Connection. However, it first rolls back the transaction or
commits it depending on the value of abortTransaction .
Parameters: con - the connection to close. Parameters: abortTransaction - true if the transaction should be rolled back. |
createScrollablePreparedStatement | public static PreparedStatement createScrollablePreparedStatement(Connection con, String sql) throws SQLException(Code) | | Creates a scroll insensitive PreparedStatement if the JDBC driver supports it, or a normal
PreparedStatement otherwise.
Parameters: con - the database connection. Parameters: sql - the SQL to create the PreparedStatement with. a PreparedStatement throws: java.sql.SQLException - if an error occurs. |
createScrollableStatement | public static Statement createScrollableStatement(Connection con) throws SQLException(Code) | | Creates a scroll insensitive Statement if the JDBC driver supports it, or a normal
Statement otherwise.
Parameters: con - the database connection. a Statement throws: SQLException - if an error occurs. |
getConnection | public static Connection getConnection() throws SQLException(Code) | | Returns a database connection from the currently active connection
provider. (auto commit is set to true).
a connection. throws: SQLException - if a SQL exception occurs. |
getConnectionProvider | public static ConnectionProvider getConnectionProvider()(Code) | | Returns the current connection provider. The only case in which this
method should be called is if more information about the current
connection provider is needed. Database connections should always be
obtained by calling the getConnection method of this class.
the connection provider. |
getDatabaseType | public static DatabaseType getDatabaseType()(Code) | | Returns the database type. The possible types are constants of the
DatabaseType class. Any database that doesn't have its own constant
falls into the "Other" category.
the database type. |
getLargeTextField | public static String getLargeTextField(ResultSet rs, int columnIndex) throws SQLException(Code) | | Retrives a large text column from a result set, automatically performing
streaming if the JDBC driver requires it. This is necessary because
different JDBC drivers have different capabilities and methods for
retrieving large text values.
Parameters: rs - the ResultSet to retrieve the text field from. Parameters: columnIndex - the column in the ResultSet of the text field. the String value of the text field. throws: SQLException - if an SQL exception occurs. |
getSchemaManager | public static SchemaManager getSchemaManager()(Code) | | Returns a SchemaManager instance, which can be used to manage the database
schema information for Openfire and plugins.
a SchemaManager instance. |
getTransactionConnection | public static Connection getTransactionConnection() throws SQLException(Code) | | Returns a Connection from the currently active connection provider that
is ready to participate in transactions (auto commit is set to false).
a connection with transactions enabled. throws: SQLException - if a SQL exception occurs. |
isBatchUpdatesSupported | public static boolean isBatchUpdatesSupported()(Code) | | |
isEmbeddedDB | public static boolean isEmbeddedDB()(Code) | | |
isFetchSizeSupported | public static boolean isFetchSizeSupported()(Code) | | |
isMaxRowsSupported | public static boolean isMaxRowsSupported()(Code) | | |
isProfilingEnabled | public static boolean isProfilingEnabled()(Code) | | Returns true if connection profiling is turned on. You can collect
profiling statistics by using the static methods of the ProfiledConnection
class.
true if connection profiling is enabled. |
isScrollResultsSupported | public static boolean isScrollResultsSupported()(Code) | | |
isStreamTextRequired | public static boolean isStreamTextRequired()(Code) | | |
isSubqueriesSupported | public static boolean isSubqueriesSupported()(Code) | | |
isTransactionsSupported | public static boolean isTransactionsSupported()(Code) | | |
scrollResultSet | public static void scrollResultSet(ResultSet rs, int rowNumber) throws SQLException(Code) | | Scrolls forward in a result set the specified number of rows. If the JDBC driver
supports the feature, the cursor will be moved directly. Otherwise, we scroll
through results one by one manually by calling rs.next().
Parameters: rs - the ResultSet object to scroll. Parameters: rowNumber - the row number to scroll forward to. throws: SQLException - if an error occurs. |
setConnectionProvider | public static void setConnectionProvider(ConnectionProvider provider)(Code) | | Sets the connection provider. The old provider (if it exists) is shut
down before the new one is started. A connection provider should
not be started before being passed to the connection manager
because the manager will call the start() method automatically.
Parameters: provider - the ConnectionProvider that the manager should obtainconnections from. |
setFetchSize | public static void setFetchSize(ResultSet rs, int fetchSize)(Code) | | Sets the number of rows that the JDBC driver should buffer at a time.
The operation is automatically bypassed if Jive knows that the
the JDBC driver or database doesn't support it.
Parameters: rs - the ResultSet to set the fetch size for. Parameters: fetchSize - the fetchSize. |
setLargeTextField | public static void setLargeTextField(PreparedStatement pstmt, int parameterIndex, String value) throws SQLException(Code) | | Sets a large text column in a result set, automatically performing
streaming if the JDBC driver requires it. This is necessary because
different JDBC drivers have different capabilities and methods for
setting large text values.
Parameters: pstmt - the PreparedStatement to set the text field in. Parameters: parameterIndex - the index corresponding to the text field. Parameters: value - the String to set. throws: SQLException - if an SQL exception occurs. |
setMaxRows | public static void setMaxRows(Statement stmt, int maxRows)(Code) | | Sets the max number of rows that should be returned from executing a
statement. The operation is automatically bypassed if Jive knows that the
the JDBC driver or database doesn't support it.
Parameters: stmt - the Statement to set the max number of rows for. Parameters: maxRows - the max number of rows to return. |
setProfilingEnabled | public static void setProfilingEnabled(boolean enable)(Code) | | Turns connection profiling on or off. You can collect profiling
statistics by using the static methods of the ProfiledConnection
class.
Parameters: enable - true to enable profiling; false to disable. |
|
|