com.jaeksoft.pojodbc.connection.ConnectionManager Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of opensearchserver Show documentation
Show all versions of opensearchserver Show documentation
OpenSearchServer is a powerful, enterprise-class, search engine program. Using the web user interface, the crawlers (web, file, database, ...) and the REST/RESTFul API you will be able to integrate quickly and easily advanced full-text search capabilities in your application. OpenSearchServer runs on Windows and Linux/Unix/BSD.
The newest version!
/**
* License Agreement for OpenSearchServer Pojodbc
*
* Copyright 2008-2013 Emmanuel Keller / Jaeksoft
* Copyright 2014-2015 OpenSearchServer Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.jaeksoft.pojodbc.connection;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.logging.Level;
import java.util.logging.Logger;
import com.jaeksoft.pojodbc.Transaction;
/**
*
* The abstract class for all ConnectionManager.
*
* @author Jaeksoft / Emmanuel Keller
*
*/
public abstract class ConnectionManager {
/**
* Use com.jaeksoft.pojodbc.connection.ConnectionManager to manager the log
* level.
*/
static protected Logger logger = Logger.getLogger(ConnectionManager.class.getCanonicalName());
/**
* Start a new transaction (or/and a new connection).
*
* @param autoCommit
* Enable or disable autocommit (if available)
* @param transactionIsolation
* java.sql.Connection.TRANSACTION..., or null
* @return a new Transaction object
* @throws SQLException
* if any jdbc error occurs
*/
public abstract Transaction getNewTransaction(boolean autoCommit, Integer transactionIsolation) throws SQLException;
/**
* Start a new transaction (or/and a new connection)
*
* @param autoCommit
* Enable or disable autocommit (if available)
* @return a new Transaction object
* @throws SQLException
* if any jdbc error occurs
*/
public Transaction getNewTransaction(boolean autoCommit) throws SQLException {
return getNewTransaction(autoCommit, null);
}
/**
* Start a new transaction (or/and a new connection) with autoCommit set to
* true, and transactionIsolation set to null
*
* @return a new Transaction object
* @throws SQLException
* if any jdbc error occurs
*/
public Transaction getNewTransaction() throws SQLException {
return getNewTransaction(true);
}
/**
* That static method try to close quietly each parameters. Null parameters
* are allowed. SQLException are catched and logged.
*
* @param resultSet
* A ResultSet to close
* @param stmt
* A Statement to close
* @param cnx
* A connection to close
*/
public static void close(ResultSet resultSet, Statement stmt, Connection cnx) {
if (resultSet != null)
try {
resultSet.close();
} catch (SQLException e) {
logger.log(Level.SEVERE, e.getMessage(), e);
}
if (stmt != null)
try {
stmt.close();
} catch (SQLException e) {
logger.log(Level.SEVERE, e.getMessage(), e);
}
if (cnx != null) {
try {
if (logger.isLoggable(Level.FINEST))
logger.finest("Close JDBC connection");
cnx.close();
} catch (SQLException e) {
logger.log(Level.SEVERE, e.getMessage(), e);
}
}
}
}