
com.jaeksoft.pojodbc.connection.JDBCConnection 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.
/**
* 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.DriverManager;
import java.sql.SQLException;
import java.util.logging.Level;
import com.jaeksoft.pojodbc.Transaction;
/**
* A connection manager getting database connection from an JDBC url.
*
* Take care to set driver and url parameters before using getNewTransaction
* method.
*
*
* That example show how create an instance of a JDBCConnection using a MySQL
* database.
*
*
*
* JDBCConnection connectionManager = new JDBCConnection();
* connectionManager.setDriver("com.mysql.jdbc.Driver");
* connectionManager.setUrl("jdbc:mysql://localhost:3306/dbName?autoReconnect=true");
*
*
*/
public class JDBCConnection extends ConnectionManager {
private String url;
private String driver;
private String username;
private String password;
/**
* The empty constructor. Used for bean compatibility. Parameters can be
* passed using setters.
*/
public JDBCConnection() {
url = null;
driver = null;
}
/**
*
* @param driver
* The driver class name
* @param url
* The url used to connect to database
* @throws ClassNotFoundException
* if the class of the driver cannot be found
* @throws IllegalAccessException
* in case of any illegal access
* @throws InstantiationException
* if the driver cannot be constructed
*/
public JDBCConnection(String driver, String url)
throws InstantiationException, IllegalAccessException, ClassNotFoundException {
setDriver(driver);
setUrl(url);
}
public String getDriver() {
return driver;
}
public void setDriver(String driver) throws InstantiationException, IllegalAccessException, ClassNotFoundException {
if (logger.isLoggable(Level.FINEST))
logger.finest("New Database instance - Driver: " + driver + " Url: " + url);
if (driver != null)
Class.forName(driver).newInstance();
this.driver = driver;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public void setUsername(String username) {
this.username = username;
}
public void setPassword(String password) {
this.password = password;
}
@Override
public Transaction getNewTransaction(boolean autoCommit, Integer transactionIsolation) throws SQLException {
return getNewTransaction(autoCommit, transactionIsolation, null);
}
/**
* Get a new Transaction instance. You can add a suffix on the url used to
* establish the database connection.
*
* @param autoCommit
* set to true to enable auto-commit
* @param transactionIsolation
* choose the right isolation level
* @param urlSuffix
* A suffix added to the url when establishing the database
* connection
* @return a new Transaction instance
* @throws SQLException
* if any JDBC error occurs
*/
public Transaction getNewTransaction(boolean autoCommit, Integer transactionIsolation, String urlSuffix)
throws SQLException {
String localUrl = url;
if (urlSuffix != null)
localUrl += urlSuffix;
if (logger.isLoggable(Level.FINEST))
logger.finest("DriverManager.getConnection " + localUrl);
Connection cnx = null;
if (username != null || password != null)
cnx = DriverManager.getConnection(localUrl, username, password);
else
cnx = DriverManager.getConnection(localUrl);
if (transactionIsolation != null)
cnx.setTransactionIsolation(transactionIsolation);
cnx.setAutoCommit(autoCommit);
return new Transaction(cnx, autoCommit, transactionIsolation);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy