All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.jaeksoft.pojodbc.connection.ConnectionManager Maven / Gradle / Ivy

Go to download

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);
			}
		}
	}
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy